有关/etc/passwd,/etc/shadow,/etc/group,以及用户管理与查看用户信息的命令知识总结

/etc/passwd文件

passwd文件存放的是用户相关的信息,包含有用户名,密码,属主uid,属组gid,注释相关,家目录,用户所用的shell
root:x:0:0:root:/root:/bin/bash
有7个字段,每个字段代表的是:
1.用户名
2.密码,用一个X表示,其以加密的形式存放在/etc/shadow下
3.属主id
4.属组id
5.对用户进行的注释信息,以便日后查看
6.用户家目录
7.用户所用的shell,有一类用户是不登录的,也就是说,根本用不上shell
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
系统用户:    
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash
自定义用户:
    fedora:x:2003:2003:Fedora Community:/home/fedora:/bin/tcsh
**
系统的uid在500以下(1-499),用户自定义的账号的gid在500以上(500-6000)
**
添加用户:
useradd
    -c:注释说明,相当于第五个字段
    -d:指定家目录,若不指定,则会在/home目录下建立一个以当前用户名为名的家目录
    
    -g:组名,必须事先存在
    
    -G:附加组
    
    -M:不建立家目录
    
    -r:建立系统用户
    
    -s shell:指定用户登录的shell
    -u uid :指定uid
/etc/login.defs:这个有建立用户时,默认的设定
 
实例:添加一个用户名为test,uid为5500,附加组为testone
#添加一个组

#groupadd testone

#添加一个用户

#useradd test -u 5500 -G testone

删除用户:userdel

    -r:连家目录一起删除
    
修改用户信息:usermod,这里的选项参数和useradd产不多
组:
用户组类别:
1.私有组:创建用户时,如果没有为其指定组,系统自动为其创建一个与用户同名的组
2.附加组
/etc/group
添加组:
groupadd
    -r:建立系统组
    -g gid:指定组id
root:x:0:
test11:x:12366:test122
1.组名
2.组的管理密码
3.组id
4.附加组,附加组可以有多个
删除组:
groupdel
只能删除使用groupadd添加的组,而不能删除当使用useradd创建用户时创建的组
    -n group_name:更改组名
    -g gid :更改组id
    
密码文件:/etc/shadow

root:$6$H7hZfcMAaOhsYXTo$i6iSH8ddgj.FmmCQxRQe2eKJS7kyEe8cIwmOXMbygB9uChYWiWs0uf0y3knDYyfKBVw2sufH2nbGd/QWb9g8g.:16449:0:99999:7:::ubuntu:!!:16682:0:99999:7:::

各个字段代表的意义:

1.登录名
2.加密密码
3.自1970.1.1起最后一次修改密码的时间(天数)
4.密码持续的最小天数
5.密码持续的最大天数
6.密码将要过期的时间提醒(在要快到期时的警告)
7.密码到期后的宽限天数(在密码到期后的提醒,如再不更改密码,则用户被锁定)
8.密码的到期时间
为用户设定密码:passwd
passwd username
    如不指定用户名,则为当前用户更改密码
    也可以使用如下方法改密
    echo "redhat" | passwd --stdin username
    -l:锁定
    -u:解锁
    -d:删除用户密码
    
与用户账号有关的其他命令:
    
pwck检查用户账号的完整性,传入的是passwd文件    

# pwck /etc/passwduser 'adm': directory '/var/adm' does not existuser 'uucp': directory '/var/spool/uucp' does not existuser 'gopher': directory '/var/gopher' does not existuser 'oprofile': directory '/home/oprofile' does not existuser 'avahi-autoipd': directory '/var/lib/avahi-autoipd' does not existuser 'saslauth': directory '/var/empty/saslauth' does not existuser 'pulse': directory '/var/run/pulse' does not exist

pwck:无改变id:查看用户账号的使用信息

    -u:显示uid
    -g:显示gid
    -G:显示Gid

# id ubuntuuid=12362(ubuntu) gid=12367(ubuntu) 组=12367(ubuntu)

chsh:更改用户的登录shell

    -s:指定一个shell
    

# tail /etc/passwd    ubuntu:x:12362:12367::/home/ubuntu:/bin/bash# chsh -s /bin/tcsh ubuntuChanging shell for ubuntu.Shell changed.# tail /etc/passwd    ubuntu:x:12362:12367::/home/ubuntu:/bin/tcsh