Linux 用户管理 第7天

2012-08-11 22:07:15 0  category: linux
配置文件
用户信息文件:/etc/passwd
[root@helen ~]# wc -l /etc/passwd
统计用户数量
36 /etc/passwd
[root@helen ~]# ls -l / | grep "^d" | wc -l 统计子目录数量
23
1./etc/passwd 文件格式
root:x:0:0:root:/root:/bin/bash
root - 用户名
x - 密码位
0 - UID 任何用户的 UID 为 0 就为管理员,内核只认 UID 为 0 就为管理员
0 - GID 缺省所属组的 GID
root 描述信息 samlee、Market lisi 系统中用户较多时使用描述信息
/root - 宿主目录 root 的宿主目录为/root,username 的宿主目录为/home/username
/bin/bash - 命令解释器 Shell
[root@helen ~]# cat /etc/shells 列出系统中安装的 Shell
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
[root@helen ~]# vi /etc/passwd
root:x:0:0:root:/root:/bin/ksh
exit
重新登录
Last login: Wed Feb 23 17:32:24 2011 from 192.168.0.104
#
# bash
[root@helen ~]#
Linux 用户分为三种:
超级用户(root,UID=0)
普通用户(UID 500-60000)
伪用户(UID 1-499)
伪用户
1、伪用户与系统和程序服务相关
bin、deamon、shutdown、halt 等,任何 Linux 系统默认都有这些伪用户
mail、new、games、apache、ftp、mysql 及 sshd 等,与 Linux 系统的进程相关。
2、未用通常不需要或无法登陆系统。
3、可以没有宿主目录。
用户组
每个用户都至少属于一个用户组
每个用户组可以包括多个用户
同一用户组的用户享有该组共有的权限
密码文件:/etc/shadow
[root@helen ~]# ls -l /etc/shadow
-r-------- 1 root root 1042 02-22 23:16 /etc/shadow
[root@helen ~]# man 5 passwd 查看 passwd 文件的帮助
[root@helen ~]# man 5 shadow 查看 shadow 文件的帮助
/etc/shadow 文件格式
root:$1$SWftcahz$Qj4.bkYI2sc1Uhbc6ysXl/:15027:0:99999:7:::
root
用户名 login name
$1$SWftcahz$Qj4.bkYI2sc1Uhbc6ysXl/ 加密过的密码 encrypted password
在使用 usermode 命令和 passwd 命令后经历的过程
/etc/passwd
| pwconv
/etc/shadow
密码回写 pwunconv(UNIX 不支持)
[root@helen ~]# grep samlee /etc/passwd /etc/shadow
/etc/passwd:samlee:x:500:500::/home/samlee:/bin/bash
/etc/shadow:samlee:$1$J57aa3cM$1fUSosTr0vYRo2Xu0qQTF.:15028:0:99999:7:::
[root@helen ~]# pwunconv
[root@helen ~]# grep samlee /etc/passwd /etc/shadow
/etc/passwd:samlee:$1$J57aa3cM$1fUSosTr0vYRo2Xu0qQTF.:500:500::/home/samlee:/bi
n/bash
grep: /etc/shadow: 没有那个文件或目录
[root@helen ~]# pwconv
[root@helen ~]# grep samlee /etc/passwd /etc/shadow
/etc/passwd:samlee:x:500:500::/home/samlee:/bin/bash
/etc/shadow:samlee:$1$J57aa3cM$1fUSosTr0vYRo2Xu0qQTF.:15028:0:99999:7:::
15027:最后一次修改时间 用户最后一次修改密码的天数 days since Jan 1, 1970 that
password was last changed
0:最小时间间隔 两次修改密码之间的最小天数 days before password may be changed
99999: 最大时间间隔 密码保持有效的最多天数 days after which password must be
changed
7:days before password is to expire that user is warned
警告时间 从系统开始警告到密码失效的天数 days after password expires that
帐号闲置时间 帐号闲置时间 account is disabled
失效时间 密码失效的绝对天数 days since Jan 1, 1970 that account is disabled
标志 一般不使用 a reserved field
用户管理命令
chage 设定密码
-l 查看用户密码设置
[root@helen ~]# chage -l samlee
最近一次密码修改时间
: 2 月 23, 2011
密码过期时间
:从不
密码失效时间
:从不
帐户过期时间
:从不
两次改变密码之间相距的最小天数
:0
两次改变密码之间相距的最大天数
:99999
在密码过期之前警告的天数
:7
-m 密码修改最小天数
-M 密码修改最大天数
-d 密码最后修改的天数
-I 密码过期后,锁定账户的天数
-E 设置密码的过期日期,如果为 0,代表密码为立即过期;如果为-1,代表密码
永不过期。
-W 设置密码过期前,开始警告的天数。
[root@helen ~]# chage -M 90 samlee
[root@helen ~]# chage -W 3 samlee
[root@helen ~]# chage -l samlee
最近一次密码修改时间
: 2 月 23, 2011
密码过期时间
: 5 月 24, 2011
密码失效时间
:从不
帐户过期时间
:从不
两次改变密码之间相距的最小天数
:0
两次改变密码之间相距的最大天数
:90
在密码过期之前警告的天数
:3
Johnthe ripper 应用
[root@helen ~]# tar -zxf john-1.7.6.tar.gz
[root@helen ~]# cd john-1.7.6
[root@helen john-1.7.6]# ls
doc README run src
[root@helen john-1.7.6]# cd src/
[root@helen src]# make
To build John the Ripper, type:
make clean SYSTEM
where SYSTEM can be one of the following:
linux-x86-64
Linux, x86-64 with SSE2 (best)
linux-x86-sse2
Linux, x86 with SSE2 (best if 32-bit)
linux-x86-mmx
Linux, x86 with MMX
linux-x86-any
Linux, x86
linux-alpha
Linux, Alpha
linux-sparc
Linux, SPARC 32-bit
linux-ppc32-altivec
Linux, PowerPC w/AltiVec (best)
linux-ppc32
Linux, PowerPC 32-bit
linux-ppc64
Linux, PowerPC 64-bit
linux-ia64
Linux, IA-64
[root@helen src]# make linux-x86-any
[root@helen src]# cd ../run
[root@helen run]# ls
all.chr alnum.chr alpha.chr digits.chr john john.conf lanman.chr mailer
password.lst unafs unique unshadow
[root@helen run]# passwd samlee
Changing password for user samlee.
New UNIX password: 123456
BAD PASSWORD: it is too simplistic/systematic
Retype new UNIX password: 123456
passwd: all authentication tokens updated successfully.
[root@helen run]# grep samlee /etc/passwd > samlee.passwd
[root@helen run]# grep samlee /etc/shadow > samlee.shadow
[root@helen run]# cat samlee*
samlee:$1$/mXkYcck$layMNsqEqZSE0C6RkNx/B.:500:500::/home/samlee:/bin/bash
samlee:x:500:500::/home/samlee:/bin/bash
samlee:$1$VdTAM3GF$0D4iQ2xEmzAn52ELn7Iy50:15028:0:90:3:::
[root@helen run]# ./unshadow samlee.passwd samlee.shadow > samlee.john
[root@helen run]# ./john samlee.john
Loaded 1 password hash (FreeBSD MD5 [32/32])
123456
(samlee)
guesses: 1 time: 0:00:00:00 100% (2) c/s: 6161 trying: 123456
[root@helen run]# pwunconv
[root@helen run]# ./john /etc/passwd
Loaded 1 password hash (FreeBSD MD5 [32/32])
123456
(root)
guesses: 1 time: 0:00:00:00 100% (2) c/s: 5435 trying: 123456
[root@helen run]# pwconv
用户组文件:/etc/group
sys:x:3:root,bin,adm
sys 组名
x 组密码位
(一般不使用,
当用户不是组内成员,
切换到这个组的时候,
只要知道组密码,
就可以切换)
3 GID
root,bin,adm
组成员列表
手工添加用户
分别在/etc/passwd、/etc/group 和/etc/shadow 文件中添加一笔记录
创建用户宿主目录
在用户宿主目录中拷贝默认的配置文件(/etc/skel)
/etc/passwd - 使 用 者 帐 号 资 讯
/etc/shadow - 使 用 者 帐 号 资 讯 加 密
/etc/group - 群 组 资 讯
/etc/default/useradd - 定 义 资 讯
/etc/login.defs - 系 统 广 义 设 定
/etc/skel - 内 含 定 义 档 的 目 录
/etc/gshadow
组密码文件
[root@helen run]# groupadd test
[root@helen run]# gpasswd test
正在修改 test 组的密码
新密码:test
请重新输入新密码:test
[root@helen run]# grep test /etc/group /etc/gshadow
/etc/group:test:x:501:
/etc/gshadow:test:$1$7UGvndqa$Uj9j0m8Doe55KR7Y1WjVD0::
[root@helen run]# grpunconv
[root@helen run]# grep test /etc/group /etc/gshadow
/etc/group:test:$1$7UGvndqa$Uj9j0m8Doe55KR7Y1WjVD0:501:
grep: /etc/gshadow: 没有那个文件或目录
[root@helen run]# grpconv
[root@helen run]# ls -a /etc/skel
. .. .bash_logout .bash_profile .bashrc
[root@helen run]# ls -a /home/samlee
. .. .bash_logout .bash_profile .bashrc
[root@helen run]# vi /etc/skel/README
Welcome to lampbrother !
[root@helen run]# useradd zhangsan
[root@helen run]# passwd zhangsan
Changing password for user zhangsan.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@helen run]# su - zhangsan
[zhangsan@helen ~]$ ls
README
[zhangsan@helen ~]$ ls -a
. .. .bash_logout .bash_profile .bashrc README
手工添加用户组
[root@helen ~]# vi /etc/group
webadmin:x:600:
手工添加用户
[root@helen ~]# vi /etc/passwd
john:x:550:600:TEC.zhangmo:/home/john:/bin/bash
mary:x:556:600:TEC.zhangzhen:/home/mary:/bin/bash
[root@helen ~]# vi /etc/shadow
john::15028:0:99999:7:::
(密码位为空,用户不用输入密码就可登录,如果为!
!
用户就不能登录)
mary::15028:0:99999:7:::
:wq!
生成宿主目录
[root@helen ~]# cp -R /etc/skel/ /home/john
[root@helen ~]# cp -R /etc/skel/ /home/mary
[root@helen ~]# ls -ld /home/john
drwxr-xr-x 2 root root 1024 02-23 19:03 /home/john
[root@helen ~]# ls -ld /home/mary
drwxr-xr-x 2 root root 1024 02-23 19:04 /home/mary
[root@helen ~]# chown john /home/john
[root@helen ~]# chown mary /home/mary
[root@helen ~]# ls -ld /home/john
drwxr-xr-x 2 john root 1024 02-23 19:03 /home/john
[root@helen ~]# ls -ld /home/mary
drwxr-xr-x 2 mary root 1024 02-23 19:04 /home/mary
[root@helen ~]#exit
[root@helen ~]#exit
用 john 或 mary
[root@helen ~]# grep -v "^#" /etc/login.defs
MAIL_DIR
/var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN
5
PASS_WARN_AGE 7
UID_MIN
500
UID_MAX
60000
GID_MIN
500
GID_MAX
60000
CREATE_HOME
yes
UMASK
077
USERGROUPS_ENAB yes
MD5_CRYPT_ENAB yes
[root@helen ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
指定创建缺省组(UNIX)
,Linux 创建与用户名相同的组
HOME=/home
INACTIVE=-1 用户永远可用
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@helen ~]# cat /etc/issue 用户本地登陆前的提示信息,/etc/issue.net 以
前远程登录时的提示信息,现在多数已不用
CentOS release 5.5 (Final)
Kernel \r on an \m
[root@helen ~]# cat /etc/motd 用户登录成功后的提示信息
[root@helen ~]# man motd
The contents of /etc/motd are displayed by login(1) after a successful login
but just before it exe-cutes the login shell.
[root@helen ~]# vi /etc/motd
user quota add 300mb
重新登录成功显示 user quota add 300mb
添加用户
useradd 设置选项 用户名 -D 查看缺省参数
[root@helen ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
-g:group 名称或以数字来做为使用者登入起始群组(group)。群组名须为现有存
在的名称 。
-G 定义此使用者为此一堆 groups 的成员。每个群组使用","区格开来,不可以
夹杂空白字元。
[root@helen ~]# groupadd web
[root@helen ~]# groupadd samba
[root@helen ~]# groupadd webgroup
[root@helen ~]# useradd webgrp -g web -G webgroup,samba
[root@helen ~]# grep webgrp /etc/group
samba:x:602:webgrp
webgroup:x:603:webgrp
-c:描述信息
-e:指定用户失效时间 The date on which the user account will be disabled.
The date is specified in the format YYYY-MM-DD.
-u:UID
[root@helen ~]# useradd -u 557 hellen
[root@helen ~]# grep hellen /etc/passwd
hellen:x:557:557::/home/hellen:/bin/bash
-d:宿主目录
[root@helen ~]# useradd -d /var/www/html webadm
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
[root@helen ~]# useradd -d /var/www/tmpweb/ webuser
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
[root@helen ~]# tail -2 /etc/passwd
webadm:x:559:559::/var/www/html:/bin/bash
webuser:x:560:560::/var/www/tmpweb/:/bin/bash
-s:命令解释器 Shell
[root@helen ~]# useradd -s /bin/sh shuser
[root@helen ~]# tail -1 /etc/passwd
shuser:x:561:561::/home/shuser:/bin/sh
passwd 用户名
[root@helen ~]# passwd samlee
Changing password for user samlee.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@helen ~]# echo beijing | passwd --stdin samlee 将 samlee 的密码改为 beijing
Changing password for user samlee.
passwd: all authentication tokens updated successfully.
SetUID
[root@helen ~]# ls -l /etc/passwd /etc/shadow
-rw-r--r-- 1 root root 2075 02-24 04:47 /etc/passwd
-r-------- 1 root root 1362 02-24 04:47 /etc/shadow
思考:为什么普通用户可以更改密码?
SetUID 的定义:当一个可执行程序具有 SetUID 权限(x,命令,脚本),用户执行这个
程序时,将以这个程序所有者的身份执行。
[root@helen ~]# which touch
/bin/touch
[root@helen ~]# su - samlee
[samlee@helen ~]$ touch file01
[samlee@helen ~]$ ls -l file01
-rw-rw-r-- 1 samlee samlee 0 03-02 18:41 file01
[samlee@helen ~]$ su - root
口令:
[root@helen ~]#
Linux 中所安装的命令所有者都为 root
授权 SetUID(4) chmod u+s
chmod 4755
[root@helen ~]# umask
0022
[root@helen ~]# chmod u+s /bin/touch
[root@helen ~]# chmod 4755
chmod: “4755” 后缺少操作数
请尝试执行“chmod --help”来获取更多信息。
[root@helen ~]# chmod 4755 /bin/touch
[root@helen ~]# ls -l /bin/touch
-rwsr-xr-x 1 root root 40728 2010-03-01 /bin/touch 可执行文件有 SetUID 权限
x 位为小写字母 s
[root@helen test]# touch file
[root@helen test]# ls file
-rw-r--r-- 1 root root
0 03-02 18:47 file
[root@helen test]# chmod u+s file
[root@helen test]# ls file
-rwSr--r-- 1 root root
0 03-02 18:47 file 可执行文件有 SetUID 权限 x
位为大写字母 S
[root@helen test]# su - samlee
[samlee@helen ~]$ touch file file02
[samlee@helen ~]$ ls -l file02
-rw-rw-r-- 1 root samlee 0 03-02 18:50 file02
做实验去掉 s 权限
chmod u-s
chmod 755
[root@helen ~]# ls -l /bin/touch
-rwsr-xr-x 1 root root 40728 2010-03-01 /bin/touch
[root@helen ~]# chmod u-s /bin/touch
[root@helen ~]# ls -l /bin/touch
-rwxr-xr-x 1 root root 40728 2010-03-01 /bin/touch
[root@helen ~]# su - samlee
[samlee@helen ~]$ ls -l /etc/shadow
-r-------- 1 root root 1103 03-02 18:40 /etc/shadow
[samlee@helen ~]$ vi /etc/shadow
"/etc/shadow" [权限不足]
[samlee@helen ~]$ su - root
口令:
[root@helen ~]# chmod u+s /usr/bin/vim
[root@helen ~]# su - samlee
[samlee@helen ~]$ vi /etc/shadow
samlee 以 root 身份执行
"/etc/shadow" [只读] 37L, 1069C (编辑/etc/shadow 文件)
:wq!(文件所有者可强制保存,samlee 以 root 身份执行)
"/etc/shadow" 37L, 1069C 已写入
[samlee@helen ~]$ chmod u-s /usr/bin/vim
chmod: 更改 “/usr/bin/vim” 的权限: 不允许的操作
[samlee@helen ~]$ su - root
口令:
[root@helen ~]# chmod u-s /usr/bin/vim
[root@helen ~]# ls -l /usr/bin/vim
-rwxr-xr-x 1 root root 2725948 2009-09-20 /usr/bin/vim
SetGID
授权 SetUID(2) chmod u+s
chmod 2755
SetUID 的定义:当一个可执行程序具有 SetGID 权限(x,命令,脚本),用户执行这个
程序时,将以这个程序所属组的身份执行。
去掉 SetUID 权限 chmod u-s
chmod 755
添加 SetUID、SetGID 权限 chmod u+s,g+s
chmod 6755
[root@helen test]# ls -l /home/samlee/
总计 2
-rw-rw-r-- 1 samlee samlee 0 03-02 18:41 file01
-rw-rw-r-- 1 root samlee 0 03-02 18:50 file02
[root@helen test]# ls -l /bin/touch
-rwxr-xr-x 1 root root 40728 2010-03-01 /bin/touch
[root@helen test]# chmod 6755 /bin/touch
[root@helen test]# ls -l /bin/touch
-rwsr-sr-x 1 root root 40728 2010-03-01 /bin/touch
[root@helen test]# su - samlee
[samlee@helen ~]$ touch file03
[samlee@helen ~]$ ls -l file*
-rw-rw-r-- 1 samlee samlee 0 03-02 18:41 file01
-rw-rw-r-- 1 root samlee 0 03-02 18:50 file02
-rw-rw-r-- 1 root root
0 03-03 03:54 file03
vi file03 无权限修改 可以修改
find -perm 根据权限查找
[root@helen ~]# find / -perm -0777 -a -type f 查找权限为 0777 的文件
[root@helen ~]# find / -perm -4600 -o -perm -2000 (0 表示权限不限)
添加管理命令
添加用户组
[root@helen ~]# groupadd ftpadmin
[root@helen ~]# grep ftpadmin /etc/group
ftpadmin:x:500:
删除用户组
[root@helen ~]# groupdel ftpadmin
[root@helen ~]# grep ftpadmin /etc/group
[root@helen ~]#
修改用户组信息
[root@helen ~]# groupadd david
[root@helen ~]# groupmod -g 888 david
[root@helen ~]# grep david /etc/group
david:x:888:
[root@helen ~]# groupmod -n dashan david
[root@helen ~]# grep david /etc/group
[root@helen ~]# grep dashan /etc/group
dashan:x:888:
[root@helen ~]# user<TAB><TAB>
useradd
userformat
userinfo
usermod
users userdel
userhelper userisdnctl usermount
[root@helen ~]# group<TAB><TAB>
groupadd groupdel groupmod groups
设置组密码及管理组内成员
gpasswd 设置组密码及管理组内成员
-a 添加用户的到用户组
-d 从用户组中删除用户
usernetctl
userpasswd
-A 设置用户组管理员
-r 删除用户组密码
[root@helen ~]# gpasswd -a samlee dashan
正在将用户“samlee”加入到“dashan”组中
[root@helen ~]# grep dashan /etc/group
dashan:x:888:samlee
[root@helen ~]# gpasswd -d samlee dashan
正在将用户“samlee”从“dashan”组中删除
[root@helen ~]# grep dashan /etc/group
dashan:x:888:
[root@helen ~]# su - samlee
[samlee@helen ~]$ gpasswd -a hellen dashan
正在将用户“hellen”加入到“dashan”组中
[samlee@helen ~]$ cat /etc/group
dashan:x:888:hellen
[samlee@helen ~]$ gpasswd dashan 添加组密码
正在修改 dashan 组的密码
新密码:
请重新输入新密码:
[samlee@helen ~]$ gpasswd -r dashan 删除组密码
修改用户信息
usermode
[root@helen ~]# usermod -G dashan,samlee hellen
[root@helen ~]# grep hellen /etc/group
dashan::888:hellen
samlee:x:500:hellen
[root@helen ~]# useradd liming
[root@helen ~]# passwd liming
Changing password for user liming.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@helen ~]# groupadd lampbrother
[root@helen ~]# ls /home/
hellen liming lost+found samlee
[root@helen ~]# mkdir /home/mary
[root@helen ~]# usermod -l mary -d /home/mary -g lampbrother liming
将用户 liming 的登录名改为 samlee,加入到 lampbrother 组中,用户目录改
为/home/samlee
登录时用 mary 用户名密码为 liming 的密码
userdel
[root@helen ~]# useradd test
[root@helen ~]# passwd test
Changing password for user test.
New UNIX password:
BAD PASSWORD: it is too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@helen ~]# tail -1 /etc/passwd
test:x:502:502::/home/test:/bin/bash
[root@helen ~]# userdel -r test
[root@helen ~]# grep test /etc/passwd
[root@helen ~]#
手工删除用户
userdel -r 用户名
-r 删除用户目录
手工删除:
使用 find 命令查找属于某个用户或用户组的文件
find 选项-user、-uid、-group、-gid
1、对需要保留的文件进行移动和备份
2、对不需要的文件进行删除
3、消除用户文件中的相关表项
4、清除用户宿主目录
[root@helen
[root@helen
[root@helen
[root@helen
[root@helen
~]#
~]#
~]#
~]#
~]#
vi /etc/passwd 删除 hellen 用户
vi /etc/shadow 删除 hellen 用户
vi /etc/group 删除 hellen 用户组
rm -rf /home/hellen
find / -user hellen -exec rm -rf {} \;
多用户共同操作同一个目录
1.改变目录所属组
2.把待授权用户加入这个组
3.对所属组授权
[root@helen ~]# ls -ld /software/
drwxr-xr-x 2 root root 4096 02-23 02:22 /software/
[root@helen ~]# su - samlee
[samlee@helen ~]$ touch /software/testfile
touch: 无法触碰 “/software/file1”: 权限不够
[root@helen ~]# groupadd softadm
[root@helen ~]# gpasswd -a samlee softadm
正在将用户“samlee”加入到“softadm”组中
[root@helen ~]# grep softadm /etc/group
softadm:x:890:samlee
[root@helen ~]# chgrp softadm /software
[root@helen ~]# ls -ld /software
drwxr-xr-x 2 root softadm 4096 02-23 02:21 /software
[root@helen ~]# chmod g+w /software
[root@helen ~]# ls -ld /software
drwxrwxr-x 2 root softadm 4096 02-23 02:21 /software
[root@helen ~]# su - samlee
[samlee@helen ~]$ touch /software/testfile
禁用和恢复用户
禁用
# usermode -L username
# passwd -l username
恢复
# usermode -U username
# passwd -u username
锁定用户原理
[root@helen ~]# grep samlee /etc/shadow
samlee:$1$RTUG9Rj6$VWU1gbPfVbiWdixhEuAzJ.:15027:0:99999:7:::
[root@helen ~]# passwd -l samlee
Locking password for user samlee.
passwd: Success
[root@helen ~]# grep samlee /etc/shadow
samlee:!!$1$RTUG9Rj6$VWU1gbPfVbiWdixhEuAzJ.:15027:0:99999:7:::
用户管理命令
pwck 检测/etc/passwd 文件
vipw 编辑/etc/passwd 文件(锁定文件)相当 vi /etc/passwd
id 查看用户 id 和组信息
finger 查看用户详细信息
su 切换用户(su-环境变量切换)
passwd -S 查看用户密码状态
who、w 查看当前登录用户信息
groups 查看用户隶属于哪些用户组
newgrp 切换用户组
grpck 用户组配置文件检测
vigr 编辑/etc/group 文件(锁定文件)相当 vi /etc/group
[root@helen ~]# pwck
用户 adm:目录 /var/adm 不存在
用户 uucp:目录 /var/spool/uucp 不存在
用户 gopher:目录 /var/gopher 不存在
用户 pcap:目录 /var/arpwatch 不存在
用户 avahi-autoipd:目录 /var/lib/avahi-autoipd 不存在
pwck:无改变
宿主目录为/var/*的为伪用户
[root@helen ~]# pwck | grep samlee 正常用户
[root@helen ~]#
[root@helen ~]# grpck
samlee 组:无用户 hellen
delete member 'hellen'? y
dashan 影子组:无用户 hellen
delete member 'hellen'? y
'hellen' is a member of the 'samlee' group in /etc/gshadow but not
in /etc/group
samlee 影子组:无用户 hellen
delete member 'hellen'? y
no matching group file entry in /etc/group
delete line 'hellen:!::'? y
grpck:文件已被更新
[root@helen ~]# vipw
[root@helen ~]# vigr
[root@helen ~]# id
uid=0(root) gid=0(root) groups=0(root), 1(bin),2(daemon), 3(sys),
4(adm),
6(disk),
10(wheel)
context=root:system_r:unconfined_t:SystemLow-SystemHigh
[root@helen ~]# id samlee
uid=500(samlee) gid=500(samlee) groups=500(samlee),890(softadm)
context=root:system_r:unconfined_t:SystemLow-SystemHigh
[root@helen ~]# finger
Login
Name
Tty
Idle Login Time
Office
Office
Phone
mary
pts/1
36 Feb 23 02:00 (192.168.0.104)
root
root
pts/0
Feb 23 01:42 (192.168.0.104)
[root@helen ~]# finger samlee
Login: samlee
Name: (null)
Directory: /home/samlee
Shell: /bin/bash
Never logged in.
No mail.
No Plan.
[root@helen ~]# su samlee
[samlee@helen root]$ pwd
/root
[samlee@helen root]$ echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local
/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[samlee@helen root]$ useradd
bash: /usr/sbin/useradd: 权限不够
[samlee@helen root]$ su - root
口令:
[root@helen ~]# su - samlee
[samlee@helen ~]$ pwd
/home/samlee
[samlee@helen ~]$ echo $PATH
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/samlee/bin
[samlee@helen ~]$ useradd
-bash: useradd: command not found
[root@helen ~]# man passwd
-S
This will output a short information about the status of
the password for a given account. Available to root user only.
[root@helen ~]# passwd -S hellen(删掉了/etc/passwd、/etc/shadow 中的密码
位)
hellen NP 2011-02-22 0 99999 7 -1 (Empty password.)
[root@helen ~]# passwd -l mary
Locking password for user mary.
passwd: Success
[root@helen ~]# passwd -S mary
mary LK 2011-02-22 0 99999 7 -1 (Password locked.)
[root@helen ~]# passwd -S root
root PS 2011-02-22 0 99999 7 -1 (Password set, MD5 crypt.)
[root@helen ~]# who
root
pts/0
2011-02-23 01:42 (192.168.0.104)
mary
pts/1
2011-02-23 02:00 (192.168.0.104)
[root@helen ~]# w
02:54:30 up 1:16, 2 users, load average: 1.43, 1.18, 0.62
USER
TTY
FROM
LOGIN@ IDLE JCPU
PCPU WHAT
root
pts/0
192.168.0.104
01:42
0.00s 2.45s 0.03s w
mary
pts/1
192.168.0.104
02:00 53:35 0.04s 0.04s -bash
[root@helen ~]# who | grep mary 查看 mary 是否在线
mary
pts/1
2011-02-23 02:00 (192.168.0.104)
[root@helen ~]# write mary 给 mary 发信息
Welcome to out item !
[root@helen ~]# groups
root bin daemon sys adm disk wheel
[root@helen ~]# groups samlee
samlee : samlee softadm
[root@helen ~]# groupadd agroup
[root@helen ~]# gpasswd agroup
正在修改 agroup 组的密码
新密码:
请重新输入新密码:
(用户 mary)-bash-3.2$ newgrp agroup
密码:
(输入组密码)
bash-3.2$ groups
agroup lampbrother
用 sudo 代替 su:
-在执行 sudo 命令时,临时成为 root
-不会泄漏 root 口令
-仅向用户提供有限的命令使用权限
配置 sudo:使用 root 执行 visudo 编辑配置文件 (visudo 锁定文件)
配置文件/etc/sudoers 必须用 root 编辑
格式:用户名(组名) 主机地址=命令(绝对路径)
[root@helen ~]# rpm -q sudo
sudo-1.7.2p1-5.el5
[root@helen ~]# cat /etc/sudoers
[root@helen ~]# visudo
samlee 192.168.0.103=/usr/sbin/useradd,/usr/sbin/userdel,/sbin/shutdown -h
now(Linux 不支持 localhost 时用 IP 地址)
[root@helen ~]# su - samlee
[samlee@helen ~]$ useradd list
-bash: useradd: command not found
[samlee@helen ~]$ /usr/sbin/useradd lisi
-bash: /usr/sbin/useradd: 权限不够
[samlee@helen ~]$ sudo /usr/sbin/useradd lisi
[sudo] password for samlee:
[samlee@helen ~]$ grep lisi /etc/passwd
[samlee@helen ~]$ sudo -l 查看可以以 root 身份执行的命令
sudo 授权用户的任何命令都是以 root 身份执行的
samlee 192.168.0.104=/bin/vi /etc/shadow
sudo 授权可以具体到选项和参数
授权 samlee 可以管理 Apache
授权 samlee 用 vi 编辑 shadow 文件
1.可以更新网页
2.开关服务
3.配置服务文件
[root@helen ~]# locate httpd.conf
/etc/httpd/conf/httpd.conf
/usr/share/system-config-httpd/httpd.conf.xsl
[root@helen ~]# ls -l /etc/httpd/conf/httpd.conf
-rw-r--r-- 1 root root 33726 2010-04-05 /etc/httpd/conf/httpd.conf
[root@helen ~]# which vi
/bin/vi
[root@helen ~]# visudo
samlee
192.168.0.103=/bin/vi
/etc/httpd/conf/httpd.conf,/etc/rc.d/init.d/httpd start,/etc/rc.d/init.d/httpd
reload,/etc/rc.d/init.d/httpd configtest
[root@helen ~]# grep DocumentRoot /etc/httpd/conf/httpd.conf
[root@helen ~]# chown samlee /var/www/html/
[root@helen ~]# su - samlee
[samlee@helen ~]$ sudo /etc/rc.d/init.d/httpd start(可执行)
[samlee@helen ~]$ sudo /etc/rc.d/init.d/httpd stop (不可执行)
更新网页用 SSH File Transfer 更新网页