Linux用户与权限管理相关指令

189 阅读4分钟

1.Linux权限介绍

1.1 文件权限和文件归属

文件权限就是决定这个文件可以给谁用,怎么用,Linux的文件权限可以分为三种:

  • 可读 r
  • 可写 w
  • 可执行 x

Linux文件归属分为:

  • 属主:u 文件拥有者,一般是创建者
  • 属组:g 文件拥有者所在的用户组
  • 其他用户:o 除了属主和属组的其他用户

1.2 权限信息分析

使用 ls -l就可以查看文件详细信息,内部包含文件权限内容

image.png

其中的权限信息分析:

  • 最左边字母是文件类型,d表示目录,-表示文件
  • 往右三个字母是属主权限,有哪几个字母就是有哪几个权限
  • 再往右三个字母是属组权限
  • 最右边三个字母是其他用户权限

image.png

2.Linux用户管理

2.1 添加用户

useradd 可以添加一个linux用户,同时会在/home目录下创建一个该用户的家目录,创建用户后最好紧接着给用户设置密码

useradd 用户名
# 查看用户是否添加成功
cat /etc/passwd

2.2 用户密码的设置

有用户无密码可能无法进行远程连接,而且也不安全,所有新建用户后要设置密码

passwd 用户名 可以给指定的用户设置密码

2.3 删除用户

userdel命令可以删除用户

# 删除用户需要同时删除用户家目录
userdel -r python
# 如果不需要删除家目录直接去掉-r即可
# 不删除家目录再次创建该用户时会报错

2.4 切换用户

su命令可以用来切换用户

su [-] [用户名]
# - 表示切换后加载环境变量,建议带上
# 用户名称省略不写默认切换到root

2.5 sudo命令

我们实际开发时很少会使用root用户操作,但是在用普通用户操作时有时会有需要使用到管理员权限的情况 sudo命令就可以让我们在普通用户操作时输入的命令拥有管理员权限

sudo 其他命令

不过要使用sudo命令需要root用户为普通用户增加配置,相当于给普通用户钥匙,方法是:

# root用户下打开sudo配置文件
vi sudo
# 按:进入编辑模式,输入配置内容
用户名 ALL=(ALL)       NOPASSWD: ALL
# 按esc退出编辑模式,按:进入末行模式,wq保存并退出
# 这样就能让这个用户无需密码直接使用sudo

3.Linux用户管理

3.1 修改文件、文件夹权限

chmod可以修改文件权限信息

chmod [-R] 权限 参数
# 参数:被修改的文件、文件夹
# 选项-R:设置文件夹和其内部全部内容一样生效

权限有两种修改方式,数字型和字母型

  • 数字型权限管理:三种权限和无权限,给每个权限一个数值,比如755,表示:rwxr-xr-x

image.png

  • 字母型权限管理
r : 读权限

w : 写权限

x : 执行权限

u : 拥有者

g : 用户组

o : 其他用户

a : 所有用户

# 格式: chmod - + 权限
# 给自己减少可执行权限,给用户组增加写入权限
chmod u-x,g+w abc
# 给所有用户减少读的权限
chmod a-r abc

# 格式: chmod = 权限
# 给自己设置属主权限为只读,此时原有权限全部消失,只保留新赋予的权限内容
chmod u=r abc 
# 给所有用户最高权限
chmod a=rwx abc

# 格式: 混用
# 给用户读写执行权限, 给用户组读写权限, 给其他用户只读权限
chmod u=rwx,g-x,o-wx abc
 
# 如果我们需要修改当前目录及其目录中子文件的权限,需要使用递归方式完成操作  条件-R选项即可
chmod -R u=rwx,g=rw,o=r aaa

3.2 修改文件、文件夹所属用户、组

chown命令可以修改文件归属

chown [-R] [用户][:][用户组] 文件或文件夹
# 选项-R:对文件夹内全部内容应用
# :用于分隔用户和用户组

3.3 用户组管理

root用户才能进行用户组管理

# 创建用户组
groupadd 用户组名
# 删除用户组
groupdel 用户组名
# 修改用户所属组,将指定用户加入指定用户组
usermod -aG 用户组 用户名

3.4 用户查看命令

  • getenv group,查看系统全部的用户组
  • getenv passwd,查看系统全部的用户