您的位置:首页 > 运维架构 > Linux

linux笔记04(用户和组管理)

2007-11-06 21:27 330 查看
(四)用户和组管理[/b]
用户账号文件----passwd
#ll /etc/passwd
用户口令文件----shadow
#ll /etc/shadow
用户组账号文件
#ll /etc/group
用户组口令文件
#ll /etc/gshadow
#vipw
用于直接对用户账号文件passwd进行编辑,功能等同于”vi /etc/passwd”但比直接用VI命令更安全
#vigr
用于直接对组文件 group进行编辑,功能等同于“vi /etc/group”,但比直接用VI命令更安全,临时编辑文件的存在起锁定作用,vipw或vigr每次只允许一个人编辑passwd或group文件,它防止用户在passwd文件被编辑的时候修改他们的口令,当文本编辑器结束时,vipw或vigr将用过的副本代替原始的passwd文件
#pwck
用于验证用户账号文件认证信息的完整性,该命令检测文件“/etc/passwd”和”/etc/shadow”的每行中字段的格式和值是否正确。
#grpck
用于验证用户组文件认证信息的完整性,该命令检测文件“/etc/group”和”/etc/gshadow”的每行中字段的格式和值是否正确。
#useradd user1
用于添加用户账号,只有使用passwd命令设置用户口令,才可以用此用户进行登录,否则此因为账号被禁止登录。没有指定用户所属的组,所以建立了同名的组。
#useradd –g root user1
用于添加账号的同时指定用户私有组
#useradd –D
用于显示或设置useradd命令使用的默认值,该文件保存在”/etc/default/useradd”
#useradd –D –s –g –b –f –e –G –u –n –d -l
n参数用于禁止系统建立与用户名同名的用户组
s参数设置用户的登录shell
g参数定义用户默认的组
G参数设置新用户到其他的组中去
u参数指定用户ID,不使用系统默认的设置方式
D参数用户登录的子目录
l参数设置用户名
指定适当的参数用于改变useradd命令所使用的默认值
#useradd –D –s /bin/csh
#usermod –l user2(新) user1(旧)
此命令用于改变用户账号名,Usermod命令用于设置已有用户账号的属性,包括用户宿主目录,私有组,登录shell等内容,工作原理与useradd命令差不多,用于修改系统中现有的某个用户
#usermod –L user1
锁定用户账号,通过在shadow文件中指定用户账号的口令字段前加入锁定符号”!”锁定该用户账号的.
#usermod –U user1
解锁用户账号, ,通过在shadow文件中指定用户账号的口令字段前去除锁定符号”!”来解锁该用户账号的.
完整删除用户账号数据
Userdel [r] u s e r n a m
#userdel user1
删除用户账号,但用户宿主目录还在
#userdel –r user1
删除用户的同时删除用户宿主目录
#rm /var/spool/mail/user
删除用户的电子邮件
# ps –aux |grep “user”
#kill 进程ID号,可加 -9 强制删除
删除用户执行的后台程序
#rm /var/spool/cron/user
如果用户曾经使用crontab来设置定时器,则在/var/spool/cron/目录中会存在一个与用户名称同名的文件.)
添加批量账号
1. 编辑用户信息文件
使用任何一种文字编辑器输入用户信息,这些用户信息字段必须符合/etc/passwd文件中字段的排列次序
#vi /root/account.txt
User1:x:601:601::/home/user1:/bin/bash
User2:x:602:602::/home/user2:/bin/bash
User1:x:603:603::/home/user3:/bin/bash
User1:x:604:604::/home/user1:/bin/bash
(注意,此处不可有任何空白行)
2. 执行/usr/sbin/newusers
nweusers的主要功能是经批处理文件来更新或建立用户账号
#newusers </root/account.txt
如果没有错误,在/etc/passwd文件中就有账号的内容,在/home目录里也发现已经建立好的账号的目录
3. 执行/usr/sbin/pwunconv
可以将/etc/shadow产生的shadow口令译码,然后写回到/etc/passwd中,同时也将/etc/shadow文件中的口令字段删除,以取消shadow passwd 的功能
#pwunconv
4. 建立口令文件
按照每个用户名称来建立对应口令表,它只是简单的文本文件
#vi /root/password.txt
User1:ww31
User2:rrwe44
User3:fudis22
User4:hjhu232
5. 执行/usr/sbin/chpasswd
使用shell script 将口令表中的口令读入到/etc/passwd文件中
#chpasswd < /root/password.txt
如果没有错误,就在/etc/passwd文件中发现先前在口令青史指定的用户账号口令了,但是口令都是明文的
6. 执行/usr/sbin/pwconv
将口令编码为shadow password ,并且写入/etc/shadow文件中,这样原来的明文口令会为加密过的X记号所取代
改变用户组群的属性并不会自动改变用户的属性,如删除GID为100的组群,而属于这个组的用户中所属的GID仍然为100,反映不出这个组群已被删除
#groupadd mygroup
添加组账号,组ID>500
#groupadd –g 600 test
建立组的同时指定组的ID
#groupadd –r sysgroup
用于建立系统组账号,GID<500
#groupmod –g 502 mygroup
用于改变组ID,组账号名不变
#groupmod –n newgroup mygroup
用于改变组名,组ID不变
#groupdel mygroup
删除组账号,只有当组账号中没有用户账号时才能删除.
#passwd user1
设置指定用户的口令,只有root用户可以指定用户账号设置口令
#passwd
设置用户自己的口令
#passwd –S user1
查询指定用户的口令状态,该命令只有root用户可以使用
#passwd –l user1
锁定用户账号,只有root用户可以使用
#passwd –u user1
解锁用户账号,只有root用户可以使用,如果账号没有设置口令或已经删除口令,则此步骤会失败,这是出于系统安全的考虑.
#passwd –u –f user1
基于上面的问题,可以用-f参数来强制打开此账号
#passwd –d user1
删除用户口令,只有root用户可以使用,账号登录时系统不要求输入口令,就可以登录.也可以利用/etc/passwd和/etc/shadow文件删除用户口令,只需将口令字段中的”X”或”!!”清除即可.
#gpasswd –a user1 bin
添加用户到组
#gpasswd –d user1 bin
从组中删除用户
#gpasswd –A user1 users
设置用户为组管理员
#chfn user1
Chfn命令用于改变指定用户的finger信息。
#finger –l user1
查询用户user1信息,-l显示详细的信息
#chsh –l
用于显示当前系统可以使用的shell
#chsh –s /bin/csh user1
设置用户的登录shell
#w
显示目前登录的所有用户的信息,其中包含的信息有很多,例如用户名称,登录时间,登录位置,系统启动至今的时间,以及过去1,5,10分钟内系统的平均负载程度.
#who
用来显示目前登录的所有用户的信息但是只能显示四种信息:用户名称,使用的终端,登录时间以及登录地址
#wriet user1
Have a nice dinner!
传送信息到其他登录用户
#id
用于显示用户当前的UID GID和用户所属的组列表。
#whoami
#id -un
显示当前用户的名称
#su user1
转换当前用户到指定的用户,root转换为其它用户时不要密码,普通用户转换为其它用户时需要输入用户口令。
#su –user1
转换当前用户到指定的用户,并改变相应的环境变量
#su
转换为root
#groups user1
显示指定用户所属的组,如未指定用户则显示当前用户所属的组
#newgrp bin
转换用户的当前组到指定的组,如未指定用户组时转换为用户私有组
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息