01-账号管理
用户账号管理
- 为新员工创建账号
- 修改账号密码策略
- 禁用休假员工账号
- 删除离职员工账号
- 设置账号访问权限
每个人保管自己的密码
- 不要将密码泄露给任何人
- 保证密码复杂度
- 不要将密码写在纸条贴在显示器上
Root账号
- 能做任何事情(甚至删除操作系统自身)
- 大部分Linux发行版本安装时要求使用设置root账号密码
- Ubuntu默认禁用Root账号
- 可sudo或临时切换为root账号
- 可手动启用root账号
- 平时以普通员工账号管理计算机
在安装过程中会创建普通账号,作为日常管理使用
创建、删除账号
1 | sudo useradd user01 -m |
- 账号名最长32个字符
- 用户主目录下的内容拷贝自
/etc/skel
1 | cat /etc/passwd |
注意:密码这里用x占位,因为/etc/passwd
这个文件普通用户也能看,如果显示密码就会不安全。这个文件只存放用户账号
查看密码相关的信息
例如:
1 | sudo cat /etc/shadow |
每一列的意思:
- 用户名:密码
- 密码为
!
、*
的账号不能直接登录系统 - !:表示密码锁定
- 密码为
- :上次修改的日期
- 从1970-01-01起到修改的天数
- 如果是0表示用户下次登录时需要修改密码,空表示关闭密码过期功能
- :密码最小使用期限:密码最长使用期
- 后值小于前值时,用户无法更改密码
- :密码过期前几天提醒,默认是7天
- :密码过期几天后账号会被锁定
- 账号过期用户不能登录,密码过期看此设置是否锁定账号
- :账号过期日(距1970-01-01的天数)
- :保留
设置账号密码
1 | sudo passwd user01 # 为user01设置密码 |
添加账户的另一个命令adduser
1 | sudo adduser user02 |
基于useradd的pel脚本
并非所有Linux发行版本中都包含
向导方式运行(不需要记忆命令参数)
1 | sudo vi /usr/sbin/adduser |
批量添加账号newusers
1 | # users.txt |
可以事先把账号密码设置好,用newusers
批量添加账号
删除账号
1 | sudo userdel user01 # 删除用户名时没有同时删除用户主目录,需要进行文件备份 |
切换到root账号
1 | # 切换到root账号 |
组账号管理
查看组
将用户账号分组管理和指派权限
用户创建时同时生成同名的组账号
每个文件有唯一的所属账号和所属组(属主、属组)
- 每个用户可以同属多个组,但只有一个主组
groups 查看当前用户所属哪些组
1 | cat /etc/group |
组管理
1 | sudo groupadd gname # 添加组 |
密码策略
使用足够复杂的密码
使用技术手段强制使得客户端设置密码足够复杂
需要安装模块:Pluggable Authentication Module (PAM)
有人虽然把密码设的足够复杂,但是每次设置密码来来回回就固定的几个,时间长了,可能会被攻击者破解出来。
可以利用程序,可以指定一个次数,要求连续多少次不与前100次密码相同
1 | sudo apt install libpam-cracklib |
权限、属主和属组
权限
权限决定你能访问哪些资源
- 每个文件和文件夹拥有唯一的属主和属组
ls -l
- 权限类型
- r、w、x 读、写、执行
- u、g、o 属主、属组、其他
权限 | 文件 | 文件夹 |
---|---|---|
r | 读取文件内容、拷贝 | 列出目录内容 |
w | 更改文件内容 | 创建、删除文件及文件夹 |
x | 作为应用程序执行文件 | cd进入;读取文件权限和属性 |
修改权限的命令
1 | chmod u+rw a.txt |
权限与搜索
1 | find /path/ -perm 664 # 在path路径下搜索权限为664的 |
修改属主和属组
1 | sudo chown user01 a.txt # 将a.txt的属主改为user01 |
特殊权限
setuid (4)
- 主要针对可执行程序
- 一旦可执行程序被设置为setuid,任何用户执行程序时都能使用属主的权限
- 设置setuid命令:
sudo chmod u+s a.sh
或者sudo chmod 4777 a.sh
,原来权限不变,前面加4
例子:
passwd是可执行程序,任何人使用passwd命令,都可以暂时的拥有root权限,只有有了root权限,才可以更改密码。
setgid (2)
- 主要针对可执行程序和目录
- 应用于目录时可实现共享访问效果(新建文件的属组继承目录属组),同一组的用户相互查看。
- 设置命令:
sudo chmod g+s path/
或者sudo chmod 2775 path/
sticky bit(1)
- 针对目录的受限删除位(root、属主可以删除),其他用户创建的文件你删除不了,只有自己和root能删除。
- /tmp 目录即为典型例子
- 设置命令:
chmod o+t path/
或者chmod 1775 path/
权限掩码
新建的文件权限默认是664,新建的文件夹权限默认是775
权限掩码umask 默认是0002,文件666减去2,文件夹777减去2
umask 007 可临时设置掩码007,一旦退出会话,就会失效
永久设置可以编辑/etc/login.defs
- UMASK 022
- USERGROUPS_ENAB yes 一旦USERGROUPS_ENAB设置成yes,就会使用属主的掩码权限覆盖属组的掩码权限,也就是022变为002
- USERGROUPS_ENAB参数改为no,就会是原来的022
- 用户名与组名相同、UID与GID相同,也会使属主的掩码权限覆盖属组的掩码权限,推荐使用这种方法使得用户名与组名不相同、UID与GID不相同。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 伊甸园!