Linux账户与权限管理

Linux作为一个多任务,多用户的服务器操作系统,Linux提供了严格的权限管理机制,主要从用户身份,文件权限两方面对资源访问进行控制。

一、用户账号和组账号

1.1 用户账户概述

用户账号功能
超级用户 root用户是Linux系统中默认的超级用户账号,对本级拥有最高的权限,类似于Windows系统中的administrator用户。
普通用户 普通用户账号需要有root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限。
程序用户 在安装Linux系统及部分应用程序时,会添加一些特定的低权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行。例如:bin,daemon,ftp,mail等。
匿名用户 Windows中的匿名用户时guest,Linux系统中匿名用户是nobody。

1.2 组账户概述

  • 对于用户账号来说,对应的组账号可以分为基本组(私有组)和附加组(公共组)两种。
  • 每一个用户账号可以是多个组账号的成员,但是其基本组账号只有一个。
  • 在”/etc/passwd“文件中第四个字段记录的即为该用户的基本组GID号。
  • 而对于该用户还属于那些附加组,需要在对应组账号文件中才被体现。
账号描述
私有组(基本组) 随着用户的建立而建立,与用户同名
共有组(附加组) 直接创建空组,可以自由添加已有用户。给组设置权限后,该组中的所有用户都具备此权限。

1.3 添加用户账号:

useradd -u :指定uid +用户名

  • -d :指定宿主目录
  • -e :指定账户失效时间
  • -g :指定用户基本组
  • -G :指定用户附加组
  • -M :不建立宿主目录
  • -s :指定用户登录shell

1.4 设置用户密码:

passwd 直接加用户名

  • -d :清空密码(可以空密码登录)
  • -l :锁定用户
  • -s :查询用户状态
  • -u :解锁用户

1.5 修改用户账号的属性:

usermod -u :修改用户uid

  • -d :修改宿主目录
  • -e :修改用户账户失效时间
  • -s :指定用户登录shell
  • -l :更改用户登录名
  • -L :锁定用户
  • -U :解锁用户
  • -g :修改用户所属的基本组
  • -G :修改用户所属的附加组

1.6 删除用户:

userdel -r 用户名:删除用户时将宿主目录连带删除

1.7 添加组账户:

groupadd -g gid 组账户名

1.8 查询组账户:

grep ”组账户“ /etc/group

1.9 将用户加入指定组中:

gpasswd -a 用户名 组名
gpasswd -d 用户名 组名

二、文件目录的权限和归属

2.1 访问权限

类型解释
读取r 允许查看文件内容,显示目录列表
写入w 允许修改文件内容,允许在目录中新建,移动,删除文件或子目录
可执行x 允许运行程序,切换目录

2.2 归属所有权

类型解释
属主 拥有该文件或目录的用户账号
属组 拥有该文件或目录的组账号

  • 我们可以使用-rwxrwxrwx来表示权限也可以用777来表示权限。

  • rwx采用累加数字形式表示成 7 , r-x 表示成 5 , rwxr-xr-x 表示成755,rw-r–r--表示成644

  • 数字固定不会变,一个普通的数据文件没有执行权限。

2.3 设置文件和目录的归属

chown 属主 文件或目录
chown 属组 文件或目录
chown 属主:属组 文件或目录

2.4 权限掩码

umask的作用:
控制新建的文件或者目录的权限
默认权限去除umask的权限为新建的文件或者目录的权限

  • umask的分数指的是“该默认值需要减掉的权限,”因此,如果执行“umask 022”,代表group和other被拿掉了权限“2”,也就是被拿掉了写的权限。

  • 如果执行命令“umask 000”,代表文件的默认权限是“777”

  • -R 递归修改指定目录下所有文件,子目录的归属

道阻且长,行则将至!加油! --不是冷漠
原文地址:https://www.cnblogs.com/bushilengmo/p/13848385.html