1、用户信息文件:/etc/passwd
格式:account:password:UID:GID:GECOS:directory:shell
用户名:密码位:UID:GID:描述信息:宿主目录:shell
eg:root:x:0:0:root:/root:/bin/bash
(1)用户名 root
(2)密码 密码位
(3)UID 用户标识号
linux用户分为三种
超级用户(root,UID=0)
普通用户(UID 500-60000)
伪用户(UID 1-499)
伪用户与系统和程序服务相关;伪用户通常不需要或无法登陆系统;可以没有宿主目录
(4)GID 缺省组标识号
每个用户都至少属于一个用户组;每个用户组可以包括多个用户;统一用户组的用户享有改组权限
(5)注释性描述 例如存放用户全名等信息
(6)宿主目录 :用户登陆系统后的缺省目录
(7)命令解释器:用户使用的shell,默认位bash
2、密码文件:/etc/shadow
root:$1$IiS6co3I$4WrfYyOK.1NxVJhRa.Vcz/:17568:0:99999:7:::
用户名:加密密码:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:账号闲置时间:失效时间:标志
echo "123456" | md5sum
pwunconv shadow到passwd
pwconv passwd到shadow
3、用户组文件:/etc/group
4、用户组密码文件:/etc/gshadow
5、用户配置文件:
/etc/login.defs
/etc/default/useradd
6、新用户信息文件:/etc/skel
7、登陆信息:/etc/motd
# cat /etc/issue
welcome to WDN Linux
1、SetUID(4)的定义:当一个可执行程序具有SetUID权限,用户执行这个程序时,将以这个程序所有者的身份执行。
设置SetUID;chomd 4755/u+s ...
取消SetUID:chomd 755/u-s ...
查找SetUID程序:
find -perm -4000 -o
2、SetGID(2)的定义:
设置SetGID;chomd 2755/g+s ...
取消SetGID:chomd 755/g-s ...
查找SetGID程序:
find -perm -2000 –o
3、同时设置SetUID,SetGUD chomd 6755
eg:# mkdir /brother
# touch /brother/newfile
# chmod 777 /brother
# ls -ld /brother
drwxrwxrwx 2 root root 4096 01-15 19:31 /brother
# ls -ld /brother/newfile
-rw-r--r-- 1 root root 0 01-15 19:31 /brother/newfile
# su - wdn002
$ rm /brother/newfile
rm:是否删除有写保护的 一般空文件 “/brother/newfile”? y
$ ls /brother
只要对目录有写权限,就可以把里面的文件删了
4、粘着位(1) 如果一个权限为777的目录,被设置了粘着位,每个用户都可以在目录下创建文件,但只可以删除自己是所有者的文件
设置粘着位 chmod o+t
eg;/tmp 目录
5、添加用户
(1)、useradd设置选项用户名 -D查看缺省参数
eg:useradd -u 6666 -g root -G sys,apache -d /backup -s /bin/bash -c "project wdn" -e 2019-02-15 jackzhang
-u:UID
-g:缺省所属用户组GID
-G:指定用户所属多个组
-d:宿主目录
-s:命令解释器Shell
-c:描述信息
-e:指定用户失效时间
(2)、passwd sam
(3)、手工添加用户
6、删除用户
(1)、userdel -r 用户名
-r:删除用户目录
(2)、手工删除
7、设定密码 chage
-l:查看用户密码设置
-m:密码修改最小天数
-M:密码修改最大天数
-d:密码最后修改的日期
-I:密码过期后,锁定账户的天数
-E:设置密码的过期日期,如果为0,代表密码立即过期;如果未-1,代表密码永不过期
-W:设置密码过期前,开始警告的天数
8、启动或停用shadow的功能
pwconv/pwunconv
grpconv/grpunconv
system-config-users(启动图形化工具)
authconfig、/etc/sysconfig/authconfig
9、锁定、恢复用户
锁定用户 passwd -l 用户名
usermod -L 用户名
恢复用户 passwd -u 用户名
usermod -U 用户名
1、添加用户组 groupadd
groupadd -g 888 webadmin 创建用户组webadmin,其GID为888
2、删除用户组 groupdel 组名
3、修改用户组信息 groupmod
groupmod -n apache webadmin
4、设置组密码及管理组内成员 gpasswd
-a 添加用户到用户组
-d 从用户组中删除用户
-A 设置用户组管理员
-r 删除用户组密码
-R 禁止用户切换为该组
5、向一个组添加用户
usermod -G 组名 用户名
gpasswd -a 用户名 组名
6、groups 查看用户隶属于哪些用户组
newgrp 切换用户组
grpck 用户组配置文件检测
chgrp 修改文件所属组
vigr 编辑/etc/group文件(锁定文件)
pwck 检测/etc/passwd文件(锁定文件)
vipw 编辑/etc/passwd文件
id 查看用户详细信息
finger 查看用户详细信息
su 切换用户(su - 环境变量切换)
passwd -S 查看用户密码状态
who、w 查看当前登录用户信息
7、授权用户jack和mary对目录/software有写权限
#mkdir /software
# ls -ld /software
drwxr-xr-x 2 root root 4096 01-16 12:40 /software
# useradd jack
# useradd mary
# passwd jack
Changing password for user jack.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
# passwd mary
Changing password for user mary.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
# groupadd softadm
# grep softadm /etc/group
softadm:x:505:
# usermod -G softadm jack
# gpasswd -a mary softadm
正在将用户“mary”加入到“softadm”组中
# grep softadm /etc/group
softadm:x:505:jack,mary
# ls -ld /software
drwxr-xr-x 2 root root 4096 01-16 12:40 /software
# chgrp softadm /software
# ls -ld /software
drwxr-xr-x 2 root softadm 4096 01-16 12:40 /software
# chmod g+w /software
# ls -ld /software
drwxrwxr-x 2 root softadm 4096 01-16 12:40 /software
# su - mary
$ touch /software/adc
1、命令
newusers;导入用户信息文件
pwunconv:取消shadow password功能
chpasswd:导入密码文件
(格式 用户名:密码)
pwconv:将密码写入shadow文件
2、实例1:一次批量添加5个用户
# vi user.info
1 wang01::1001:504::/home/wang01:/bin/bash
2 wang02::1002:504::/home/wang02:/bin/bash
3 wang03::1003:504::/home/wang03:/bin/bash
4 wang04::1004:504::/home/wang04:/bin/bash
5 wang05::1005:504::/home/wang05:/bin/bash
"user.info" 5L, 205C written
You have new mail in /var/spool/mail/root
# newusers < user.info
# tail -5 /etc/passwd
wang01:x:1001:504::/home/wang01:/bin/bash
wang02:x:1002:504::/home/wang02:/bin/bash
wang03:x:1003:504::/home/wang03:/bin/bash
wang04:x:1004:504::/home/wang04:/bin/bash
wang05:x:1005:504::/home/wang05:/bin/bash
# ls /home
jack mary wang01 wang03 wang05 wdn002
lost+found shadow wang02 wang04 wdn001 wdn123
]# pwunconv
# vi pass.info
1 wang01:wang
2 wang02:wang
3 wang03:wang
4 wang04:wang
5 wang05:wang
"pass.info" [New] 5L, 60C written
# chpasswd < pass.info
# tail -5 /etc/passwd
wang01:$1$gOKA1/kP$gh2IU0VtWWTaPg6IHO8Jz1:1001:504::/home/wang01:/bin/bash
wang02:$1$gOKA1/kP$gh2IU0VtWWTaPg6IHO8Jz1:1002:504::/home/wang02:/bin/bash
wang03:$1$gOKA1/kP$gh2IU0VtWWTaPg6IHO8Jz1:1003:504::/home/wang03:/bin/bash
wang04:$1$gOKA1/kP$gh2IU0VtWWTaPg6IHO8Jz1:1004:504::/home/wang04:/bin/bash
wang05:$1$gOKA1/kP$gh2IU0VtWWTaPg6IHO8Jz1:1005:504::/home/wang05:/bin/bash
# pwconv
# tail -5 /etc/shadow
wang01:$1$gOKA1/kP$gh2IU0VtWWTaPg6IHO8Jz1:17912:0:99999:7:::
wang02:$1$gOKA1/kP$gh2IU0VtWWTaPg6IHO8Jz1:17912:0:99999:7:::
wang03:$1$gOKA1/kP$gh2IU0VtWWTaPg6IHO8Jz1:17912:0:99999:7:::
wang04:$1$gOKA1/kP$gh2IU0VtWWTaPg6IHO8Jz1:17912:0:99999:7:::
wang05:$1$gOKA1/kP$gh2IU0VtWWTaPg6IHO8Jz1:17912:0:99999:7:::
# su - wang01
$ pwd
/home/wang01
$ exit
logout
1、限制用户su为root
# groupadd sugroup
# chmod 4550 /bin/su
# ls -l /bin/su
-r-sr-x--- 1 root root 23960 2010-03-01 /bin/su
# chgrp sugroup /bin/su
# ls -l /bin/su
-r-xr-x--- 1 root sugroup 23960 2010-03-01 /bin/su
# usermod -G sugroup wang01
# chmod 4550 /bin/su
# su - wang01
$ su - root
口令:
# su - wang02
$ su - root
-bash: /bin/su: 权限不够
2、用sudo代替su:
-在执行sudo命令使,临时成为root
-不会泄露root口令
-仅向用户提供有限的命令使用权限
配置文件:/etc/sudoers,编辑配置文件命令visudo
普通用户使用命令sudo
格式:用户名(组名) 主机地址=命令(绝对路径)
3、实例:普通用户管理Apache服务器
所需要的功能,编辑Apache配置文件(httpd.conf);使用Apache启动脚本;更新网页
(1)、a 设置用户为配置文件的所有者 chmod
b 改变所属组,把用户加入组,授予 w 权限
c visodu 用户 地址=/bin/vi /etc/httpd/conf/httpd.conf
(2)、visudo 用户 地址=/etc/rc.d/init.d/httpd start,/etc/rc.d/init.d/httpd reload,/etc/rc.d/init.d/httpd fullstatus,/etc/rc.d/init.d/httpd configest
(3)、/var/www/html 改变所有者 改变所属组