每个文件和目录都有『拥有人(User ID ,简称UID)与拥有群组 (Group ID ,简称GID)』
配置文件
登录过程
在/etc/passwd 找UID和GID
根据UID在/etc/shadow 中找密码
根据GID在/etc/group中找密码
/etc/passwd
head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash #等一下做为底下说明用
bin:x:1:1:bin:/bin:/sbin/nologin
1. 账号名称(root):
2. 密码(x):后来就将这个字段的密码数据给他改放到/etc/shadow 中
3. UID标识符(0);
1. 0(系统管理员)
2. 1~999(系统账号)
3. 1000~60000(可登入账号)
4. GID标识符(0):这个与 /etc/group 有关
5. 用户信息说明栏(root)
6. 家目录(/root)
7. shell(/bin/bash )
/etc/shadow
head -n 4 /etc/shadow
root:$6$wtbCCce/PxMeE5wm$KE2IfSJr.YLP7Rcai6oa/T7KFhO...:16559:0:99999:7:::
1. 账号名称(root)
2. 密码($6$--):预设权限是『-rw-------』或者是『----------』旧式的DES, MD5 编码目前惯用的SHA
3. 最近更动密码的日期(16559):以是以1970 年1 月1 日为起始,
4. 密码不可被更动的天数(0):0表示密码随时可以更动
5. 密码需要重新变更的天数(99999):计算为273 年
6. 密码需要变更期限前的警告天数(7):发出『警告』
7. 密码过期后的账号宽限时间(密码失效日)
8. 账号失效日期:『收费服务』的系统
9. 保留:
/etc/group
head -n 4 /etc/group
root:x:0:
bin:x:1:
1. 组名(root)
2. 群组密码(x):通常不需要设定,『群组管理员』使用,密码已经移动到/etc/gshadow
3. GID(0):群组的ID
4. 此群组支持的账号名称:『root:x:0:dmtsai,alex 』
管理指令
#新增
useradd lsm
#查看当前账号信息
useradd -D
GROUP=100 #预设的群组
HOME=/home #默认的家目录所在目录
INACTIVE=-1 #密码失效日,在 shadow 内的第 7 栏
EXPIRE= #账号失效日,在 shadow 内的第 8 栏
SHELL=/bin/bash #预设的 shell
SKEL=/etc/skel #用户家目录的内容数据参考目录
CREATE_MAIL_SPOOL=yes #是否主动帮使用者建立邮件信箱(mailbox)
#设置密码
passwd vbird2 #请 root 给予 vbird2 密码
passwd #用 vbird2 登入后,修改 vbird2 自己的密码
passwd -S vbird2 #查看密码详细
passwd -l vbird2#让某个账号暂时无法使用密码登入主机
passwd -u vbird2 #解锁
#修改账号参数
usermod [-cdegGlsuLU] username
-c :后面接账号的说明,即 /etc/passwd 第五栏的说明栏,可以加入一些账号的说明。
-d :后面接账号的家目录,即修改 /etc/passwd 的第六栏;
-e :后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据啦!
-f :后面接天数,为 shadow 的第七字段。
-g :后面接初始群组,修改 /etc/passwd 的第四个字段,亦即是 GID 的字段!
-G :后面接次要群组,修改这个使用者能够支持的群组,修改的是 /etc/group 啰~
-a :与 -G 合用,可『增加次要群组的支持』而非『设定』喔!
-l :后面接账号名称。亦即是修改账号名称, /etc/passwd 的第一栏!
-s :后面接 Shell 的实际文件,例如 /bin/bash 或 /bin/csh 等等。
-u :后面接 UID 数字啦!即 /etc/passwd 第三栏的资料;
-L :暂时将用户的密码冻结,让他无法登入。其实仅改 /etc/shadow 的密码栏。
-U :将 /etc/shadow 密码栏的 ! 拿掉,解冻啦!
#删除用户
userdel [-r] username
-r :连同用户的家目录也一起删除
#新增、修改、删除群
groupadd group1 #新建一个群组
groupmod -g 201 -n mygroup group1 #将group1 名称改为 mygroup , GID 为 201
groupdel mygroup #将刚刚的 mygroup 删除!
#新增管理员
groupadd testgroup #建立一个新群组,名称为 testgroup 且群组交由 vbird1 管理:
gpasswd testgroup #群密码
gpasswd -A vbird1 testgroup #加入群组管理员为 vbird1
gpasswd -a vbird1 testgroup#以 vbird1 登入系统,并且让他加入 vbird1, vbird3 成为 testgroup 成员
gpasswd -a vbird3 testgroup
grep testgroup /etc/group #查看群组信息
#身份切换
su #读取的变量设定方式为non-login shell 的方式,不会被改变环境, 尤其是的 PATH 这个变量.
su - #让使用者的身份 真正 变成root 并开始操作系统
su - -c "指令串" #要执行一次root 的指令
#sudo身份执行命令
sudo 执行的重点是:能否使用sudo 必须要看/etc/sudoers 的设定值
/etc/sudoers的设置
visudo
....(前面省略)....
root ALL=(ALL) ALL #找到这一行,大约在 98 行左右
vbird1 ALL=(ALL) ALL #这一行是你要新增单个用户
%wheel ALL=(ALL) ALL #大约在 106 行左右,请将这行的 # 拿掉!,
『任何加入wheel 这个群组的使用者,就能够使用sudo 切换任何身份来操
作任何指令』
myuser1 ALL=(root) /usr/bin/passwd #最后指令务必用绝对路径,表示可以修改root密码
myuser1 ALL=(root) !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root #限制更改root密码,『! 』代表『不可执行』
....(底下省略)....