Linux 用户及权限管理
1. 用户分类:
根据位置分为:本地用户,远程用户
根据账号功能分为:超级用户(root)(UID=0)系统用户(伪用户 UID=1-999 6.0以前是1-499) 本地用户(UID>=1000 6.0以前是>=500)
用户账户存放于 /etc/passwd 密码存放于/etc/shadow
组账户存放于/etc/group 密码存放于/etc/gshadow
2. 添加删除用户
useradd 用户名 添加用户
-u uid
-d 宿主目录
-g 起始组 唯一
-G 附加组 不唯一
-s 登录shell
其中 –G 举例: useradd –G root user1 表示将user1这个用户添加到root 下
默认添加用户是添加在家(/home)用户下;
在 /etc/passwd中每一个字段的含义如下:
root:x:0:0:root:/root:/bin/bash
从左向右依次是:用户名 密码占位符 UID GID 用户描述 用户主目录 登录后所所使用的shell
id 用户名 查看用户的UID \gid \组id
userdel 用户名
删除用户
-r 彻底删除用户所有信息
3. 密码管理
/etc/shadow 是存放密码的地方;其文件内部结构如下:
root:
7
<script type="math/tex" id="MathJax-Element-1">7</script>.CMxBTN8Q572ZR.TY$35……T7DWCooww/:18524:0:99999:8: : :
从左向右分别代表 用户名:被加密后的密码:最近更改密码的日期(同19700101开始计算):密码不能修改的天数(改密码后几天内再次修改,0表示可以随时修改):密码过期时间:密码需要修改期限到前8天发出警告:宽限几天(密码过了几天后汉能修改密码):账号过期时间:保留
password 用户名 为用户添加(修改)密码
-l 锁定用户禁止其登陆
-u 解除锁定,允许用户登陆。
–stdin 允许从标准输入修改用户密码,如(echo “NewPassWord” | passwd -stdin Username)
-d 使帐号无密码
-e 强制用户下次登陆时修改密码
-S 显示用户的密码状态
4. 组分类:
根据位置分为:本地组,远程组
根据账号功能分为:超级组(root)(GID=0)系统组(伪用户 GID=1-999 6.0以前是1-499) 本地组(GID>=1000 6.0以前是>=500)
/etc/group
User1: x: 999: User1 从左向右分别为:用户组名:密码占位符:GID:组成员名
添加组 groupadd 组名 删除组 groupdel 组名
5. 用户切换及查看
su -用户名 切换到某用户
id 用户名 查看用户uid/gid/组id
w 查看当前用户信息
who am i 查看当前用户简单信息
whoami 查看当前用户的用户名
6. 权限类型
Linux 对于权限的管理较为完备,本章将介绍一些基本的权限管理
当ls 出文件时,一般文件会显示如下结构:
drw-r- xr- - 1 root root 3005 May 12 14:32 xxx.txt
从左向右 以此为文件类型及权限 连接数 文件拥有者 文件大小 文件最后被修改的时间 文件名
其中 文件类型及权限 从左向右以此是文件类型 d 所属者权限rw- 所属组权限 r-x 其他人权限 r- -
文件类型:-表示文件 d表示文件夹 c 表示字符类型 l 表示链接类型(类似于快捷方式) b 表示块类型
单一用户对于文件的权限类型: r 表示可读 w表示可写(可修改移动删除等) x表示可执行 ,权限字符长度为3,从左向右以此是读写执行,如果没有对应权限则用- 表示 。例如 rw- 表示可读可写,但不能执行
权限可以用数字表示 1代表x 2代表 w 4代表 r 0代表- - -
所以3代表-wx 5代表r-x 6代表 rw- 7代表rwx
文件权限 共9位,所以可以用3个数字表示。 例如773 表示所属者有读写执行权限,所属组拥有读写执行权限,其他用户有写和执行的权限。
7. 权限管理
chmod 用户类型 操作标识 权限 文件名
用户类型 (u 所属者 g 所属组 o 其他用户 a 所有用户)
操作标识 (-去掉 +添加 =赋值 )
例如:
chmod u –w 文件名 为所属者去掉w 权限
chmod g +x 文件名 为所属组添加 x权限
chmod o =r 文件名 让其他用户权限等于 r权限
chmod a +x 文件名 让所有用户用户x 权限
还可以用数字修改:
chmod 673 a.bat 表示 将a.bat 的 所属者权限改为可读可写,所有组的权限改为可读可写可执行,其他用户的权限改为可写可执行;
此外还有一些常用参数:
-c 当发生改变时,报告处理信息
-f 错误信息不输出
-R 处理指定目录以及其子目录下的所有文件
-v 运行时显示详细处理信息
当文件为只读时,如果当前操作人是文件的所有者,则可以用vim 编辑只读文件时,但必须用wq! 强制保存,才能完成写的操作。
8. 修改文件所属者所属组
chown 所属者:所属组 文件名
例如:chown user1:group1 1.txt 表示将1.txt 的所属者改为user1,将1.txt 的所属组 改为group1 。
chown 所属者 文件名 当chown 和文件名之间只写一个量时,表示只修改所属者;
chown :所属组 文件名 当chown和文件名之间只写一个:和一个量时,表示只修改所属组。