用户和组
用户:
1:用户和UID对应
2:用户需要有权限才能读、写、执行其他用户的文件
组:
1:组和GID对应
2:用户需要加到组中
3:每个用户都有自己的默认组,可以附加到其他的组
4:同组的用户可以根据组的权限,共享文件,协同合作
UID(User id ):linux系统对用户账号的识别,因为系统不会识别你的账号名,而是通过对账号分配数字ID,便于识别,账号名只是易于用户记忆,便于人类操作
UID范围
root:0
系统账号:小于500
一般账号:大于500
对应的账号信息在 /etc/passwd 中
对应密码信息在 /etc/shadow 中
GID(Group id):和UID同样原理
对应的账号信息在 /etc/group 中
对应密码信息在 /etc/groupshadow 中
用户登录验证过程:
1:查看/etc/passwd中有没有相应的账号,没有跳出,有则读取该账号的 uid、gid、home目录、使用的shell
2:查看/etc/shadow找到相应的账号uid,将密码与输入的密码进行核对
3:核对正确成功登录
/etc/passwd 数据格式:
[root@boxin ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
以冒号分开七部分
1:账号名
2:早期的密码字段,为了安全性,以将密码保存到/etc/shadow
3:UID
4:GID
5:用户信息说明
6:家目录,root为/root,一般用户为/home/username
7:shell,用户登录时使用的bash shell,若为/sbin/nologin 可以使账号无法登录(无法取得shell)
/etc/shadow 数据格式:
[root@boxin ~]# head /etc/shadow
root:$1$oh1B3zs5$MjrySLOFo0u7IaYsuMsvD0:16558:0:99999:7:::
1:用户名
2:加密的密码,在这个字段前加上!或*,就可以使密码失效,因为如MD5加密,密码长度是固定的,长度改变密码就会失效
3:最近更改密码的日期:以1970/01/01 为1,累加的天数
4:密码不可改动的天数,以字段3为标准,多少天内不能再改密码,0表示可随意更改
5:密码在这个天数内需要更改,否则过期,以字段3为标准
6:密码失效前的警告天数,以字段5为标准
7:密码过期后的宽限时间,字段3+字段5的值,密码失效时间,过期表示还可以登录,但要改密码,失效表示无法使用
8:密码失效日,直接设置失效时间,以1970以来的时间标准
9:保留
/etc/group 数据格式:
[root@boxin ~]# head /etc/group
root:x:0:
bin:x:1:bin,daemon
1:组名
2:组密码 已移到/etc/gshadow
3:GID
4:属于此用户组的用户,将账号名添加到此段可以加入本组
/etc/pshadow 数据格式:
[root@boxin ~]# head /etc/gshadow
root:::
bin:::bin,daemon
1:组名
2:密码
3:用户组管理员账号,通过gpasswd可以设置一个用于管理组的,用户组管理员
4:属于次用户组的用户
相关命令
id:查看用户参数信息
useradd:添加用户
useradd [-u UID] [-r 类型为系统用户] [-g 初始用户组] [-G 次要用户组] [-c 添加说明密码文件第五列] [-d 家目录] [-s 指定登陆的shell] 账号名
passwd:修改密码
usermod:修改用户设置,参数和useradd一样
userdel:删除用户
userdel -r username // -r完整删除用户所有数据,包括邮箱和crontab残留
groupadd:添加组
groupadd [-g GID] [-r 添加系统类型的组]groupname
groupmod:修改
groupmod [-g GID] [-n 修改组名] groupname
groupdel:删除组
前提是空组
chsh:修改shell
chsh -l //查看可用shell
chsh -s shellname //修改当前用户的shell
具体例子:
1:根据以下要求创建用户,用户组和组成员:
一个名为 admin 的组。
groupadd admin
一个名为 mary 的用户,并且以 admin 作为其第二所属组。
useradd -G admin mary
一个名为 alice 的用户,并且以 admin 作为其第二所属组。
useradd -G admin alice
一个名为 bobby 的用户,并且此用户在系统中没有交互式的shell 环境,即是nologin
useradd -s /sbin/nologin bobby
mary,alice,bobby用户都必须要以“password”作为用户密码。
passwd mary
echo password | passwd --stdin mary
2:根据以下要求创建一个本地的目录/common/admin。
此目录的拥有组为 “admin”。
mkdir -p /common/admin
chgrp -R admin /common/admin
-- 此目录必须对于 admin 组的组成员有可读,可写,可执行的权限。但是,除了此目录的拥有组与拥有者外,其他人不能有任何权限。
chmon 770 /common/admin
-- 在 /common/admin 中创建的所有文档或目录都自动继承 admin 组。
chmod g+s /common/admin
3:将umask改为003 ,查看root用户和普通用户创建文件和目录的权限(减去3为去掉 w权限 而非单纯的减去3)
4:复制/etc/fstab/ 到/var/tmp下。
文档的拥有者和组都是root
cp /etc/fstab /var/tmp
对任何其他用户都没有权限
cd /var/tmp
chmod 770 fstab
alice可以对文件进行读写执行操作
setacl -m u:alice:rwx fstab