CentOS7为例:用户、组以及文件权限管理
一、各文件简介
/etc/passwd # 保存着用户名、密码、UID、GID、用户描述、主目录
/etc/shadow # 保存着:用户名、密码、最后一次的修改时间、最小时间间隔、最大时间间隔、警告时间、不活动时间、失效时间、标志
/etc/group # 保存着用户名称、用户组密码、GID、用户列表
/etc/profile # 保存着全局环境变量、由系统管理员管理
二、用户管理
1.创建用户
# 快速创建用户
useradd 用户名
# 设置密码
passwd 用户名
如果发现passwd报错的话,就按照下面的步骤来
yum search passwd
yum -y install passwd.x86_64
2.查看用户的信息
我创建了一个yige的用户名
# -m是不创建用户目录,-d指定用户的路径,-u指定UID,-n取消创建同名用户组,-s指定shell
# -e指定过期时间 -f账号过期后多久会停用-1表示,-c表示详细描述,最后是账户名
useradd -m -d /home/yige -u 1000 -n -p qwe123 -s /bin/bash -e 2022-09-22 -f -1 -c "first user" yige
id yige
cat /etc/passwd | grep yige
-
如果不加这些参数,系统会自动根据默认值来创建用户以及同名组,并在home目录里面创建同名家目录,默认登录shell为/bin/bash
-
用户创建完成后,/etc/passwd,/etc/shadow这2个文件都会有相应的用户信息。
-
在用户家目录里都会产生.bash_history .bash_logou .bash_profile .bashrc4个隐藏文件。
3.删除用户
# 删除用户以及家目录
userdel -r 用户名
4.修改用户
usermod 用户名
选项参数 和useradd命令参数大致相同
-d --home HOME_DIR 指定新的家目录
-a --append 将用户追加到附加组中而不移出其它组
-l --login NEW_LOGIN 指定新的用户名
-L --lock 锁定用户
-m --move-home 和-d选项结合使用,移动家目录中的内容到新的位置
# 将用户添加到附加组里面去
usermod -a -G 用户组编号 用户名字
5.批量添加用户
(1)首先编辑一个文本用户文件
user001::600:100:user:/home/user001:/bin/bash
user002::601:100:user:/home/user002:/bin/bash
user003::602:100:user:/home/user003:/bin/bash
user004::603:100:user:/home/user004:/bin/bash
user005::604:100:user:/home/user005:/bin/bash
user006::605:100:user:/home/user006:/bin/bash
(2)然后以root身份来执行/usr/sbin/newusers,从刚创建的用户文件user.txt
中导入数据,创建用户
newusers < user.txt
(3).将 /etc/shadow
产生的 shadow
密码解码,然后回写到 /etc/passwd
中,并将/etc/shadow
的shadow
密码栏删掉。这是为了方便下一步的密码转换工作,即先取消 shadow password
功能。
pwunconv
(4)编辑每个用户的密码对照文件,格式为,passwd.txt:
user001:123456
user002:123456
user003:123456
user004:123456
user005:123456
user006:123456
(5)以root身份去运行,创建用户密码,chpasswd
会将经过 /usr/bin/passwd
命令编码过的密码写入 /etc/passwd
的密码栏
chpasswd < passwd.txt
(6)确定密码经编码写入/etc/passwd的密码栏后。
执行命令 /usr/sbin/pwconv
将密码编码为 shadow password
,并将结果写入 /etc/shadow
。
pwconv
三、用户组管理
1.创建用户组并添加用户
groupadd -g 用户组编号
# 将用户组进行修改
user -g 组编号 用户名字
2.删除用户组
groupdel 组名
# 强制删除组
groupdel -f 组名
3.修改用户组
groupmod 选项 组名
-g 改变组的ID
-n 改变组名
四、文件权限管理
1.权限介绍
Linux文件权限分为三种
- 读 r -4
- 写 w -2
- 执行 x-1
文件权限分为一般权限和特殊权限
一般权限主要指的是:文件所有者的权限,所属组的权限,其它用户权限
特殊权限主要指的是:权限中带s或S(SUID,SGID),t或T标志位
2.文件权限命令
umask 查看或设置权限遮罩(实际权限 = 最大权限-遮罩值)
chmod 改变文件或目录的权限
chown 更改文件或目录的所有者
chgrp 更改文件或目录的所属组
3.举例
1.将a文件权限修改为:所有者有rwx,所属组:rw,其他用户:无权限
chmod u+x,g+x,o-r a
2.将a文件所属组改为natasha,将b目录的所有者改为natasha
chgrp natasha a
chown -R natasha:root b