Linux 从入门到精通:文件权限管理
Linux操作系统是一个多用户操作系统,允许多用户同时登录到系统上并使用资源。系统会根据账户来区分每个用户的文件,任务和工作环境,使得每个用户工作都不受干扰。
用户类别
- 超级用户:root 用户,UID=0
伪用户:UID 在 1-499
- 伪用户不能登录系统,且没有宿主目录
- 如系统和服务相关的:bin、daemon、shutdown 等,进程相关的:mail、news、games 等
- 普通用户:UID 在 500-60000
- 普通用户切换至 root 用户:$ su -> 输入密码就可切换为 root 用户
- root 用户切换至普通用户:$ su <用户名> 即可切换为指定用户,不需要输入密码
配置文件
/etc/passwd
:保存用户信息的文件
- 使用
cat /etc/passwd
查看文件,内容格式为: - root - 用户名:用户登录系统的用户名
- x - 密码:密码位
- 0 - UID:用户标识号
- 0 - GID:默认组标识号
- root - 描述信息:存放用户的描述信息
- /root - 宿主目录:用户登录系统的默认目录,默认是在 /home/ 下
- /bin/bash - 命令解析器:用户使用的 Shell,默认是 bash
** /etc/shadow
:保存密码的文件**
- 使用命令
cat /etc/shadow
查看,内容格式如图所示,依次表示含义为: - 用户名:登录系统的用户名
- 密码:加密密码
- 最后一次修改时间:最后一次修改密码距离现今的天数
- 最小时间间隔:两次修改密码间隔最小时间
- 最大时间间隔:~
- 警告时间
- 账号限制时间
- 失效时间
- 标志
/etc/group
:保存用户组的文件
- 每个用户至少属于一个组;每个组可以包含多个用户;同一个组的用户拥有组的权限;
- 组名:
- 组密码:密码位,一般不使用
- GID:组标识号
- 组内用户列表:属于改组的用户的列表
/etc/gshadow
:保存用户组密码的文件
/etc/default/useradd
:用户配置文件
操作命令
操作用户
useradd
:添加用户- -u:uid,指定用户标识ID
- -g:gid,指定所属的组名ID
- -G:Groups,指定多个组,使用逗号, 间隔
- -c:comment,用户描述
- -e:expire date,失效时间
- 例如创建用户du的命令:
useradd -u 888 -g users -G sys,root -c "hr du" du passwd du
usermod
:user modify,修改用户- -l:修改用户名,如将用户a名称改为b的命令是:
usermod -l a b
- -g:添加组,为用户tom添加sys组:
usermod -g sys tom
- -G:添加多个组,使用逗号间隔
- -L:Lock,锁定账户密码
- -U:Unlock,解锁账户密码
- -l:修改用户名,如将用户a名称改为b的命令是:
userdel
:user delete,删除用户- -r:remove,删除账号同时删除账号相关目录
操作组
- groups:显示用户所属组
groupadd:添加组
- -g:指定组gid
groupmod:修改组
- -n:new group,修改组名
- groupdel:删除组
权限操作命令
三种基本权限
- r(read)读权限;
- w(write)写权限;
- x(execute)执行权限;
文件权限信息
- 第1位:表示文件类型,d-目录,-普通文件,I-链接文件
- 第2-4位:所属用户权限,用 u(user)表示
- 第5-7位:所属组权限,用 g(group)表示
- 第8-10位:其他用户权限,用 o(other)表示
- 2-10位标识所有的权限,用 a(all)表示
-rwxrw-r--
:表示一个普通文件,所属用户有读/写/执行权限,同组用户有读/写权限,其他组只有读权限
更改文件权限操作
chmod:change mode,修改文件权限
- -R:Receusive,表示其下的文件和子目录做相同的权限操作
- 如:
chmod u+x a.txt
:为a.txt文件的所属用户添加执行权限
使用数字来表示权限:r=4,w=2,x=1,-=0
- 如:
chmod 750 b.txt
:表示文件b.txt,所属用户有读/写/执行权限,所属组有读/执行/权限,其他无权限
- 如:
还没有评论,来说两句吧...