Linux学习笔记之超详细基础linux命令
---------------------------------接Part 5------------------------------
删除口令
例子:删除tom用户的口令
[root@localhost ~]# passwd -d tom
清除用户的密码 tom。
passwd: 操作成功
[root@localhost ~]# cat /etc/shadow
...
tom::15659:0:99999:7:::
...
说明:超级用户删除用户口令,删除用户口令后,用户不需要口令即可登录,查看/etc/shadow文件,用户口令字段为空,修改密码文件也是删除密码的一种方式
锁定和解锁用户帐号
例子:锁定tom用户账户
[root@localhost ~]# passwd -l tom
锁定用户 tom 的密码 。
passwd: 操作成功
注:超级用户也可直接编辑/etc/passwd文件。在指定的用户帐号所在行前面加上“#”或“*”符号,使其成为注释。即锁定该用户帐号。
反之去除注释符则解锁帐号。
例子:锁定tom用户账户
[root@localhost ~]# passwd -u tom
解锁用户 tom 的密码 。
passwd: 警告:未锁定的密码将是空的。
passwd: 不安全的操作(使用 -f 参数强制进行该操作)
显示用户帐号的状态
例子:查看tom用户帐号的当前状态
[root@localhost ~]# passwd -S tom
tom LK 2012-11-15 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# passwd tom
更改用户 tom 的密码 。
新的 密码:
无效的密码: 它基于字典单词
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@localhost ~]# passwd -S tom
tom PS 2012-11-15 0 99999 7 -1 (密码已设置,使用 SHA512 加密。)
注:字母S必须大写
超级用户可以查看用户帐号的状态,如果提示“Passwd locked”则表示此用户帐号被锁定,没密码的用户将被锁定。
usermod命令
方法:usermod [选项] 用户名
功能:修改用户的属性,只有超级用户才能使用该命令
主要选项:
-c(comment) 全名 指定用户的全称
-d(directory) 主目录 指定用户的主目录
-e(expire) 有效期限 指定用户账号的有效期限
-f 缓冲天数 指定口令过期多少天后将关闭此账号
-g 组群ID|组群名 指定用户所属的主要组群
-G 组群ID|组群名 指定用户所属的附加组群
-s(Shell) 登陆Shell 指定用户登陆后启动的Shell类型
-u(user) 用户UID 指定用户的UID
-l 用户名 指定用户的新名称
例子:将tom用户名改为tommy
[root@localhost ~]# usermod -l tommy tom
[root@localhost ~]# cat /etc/passwd
...
tommy:x:501:501::/home/tom:/bin/bash
注:执行usermod命令将修改/etc/passwd文件中指定用户名的信息。
userdel命令
方法:userdel [-r] 用户名
说明:删除指定的用户账号,只有超级用户才可以使用该命令
主要选项:
-r 删除用户账号的同时将用户的主目录也一并删除,如果不指定则只删除用户
正在使用系统的用户不能被删除,必须先终止该用户所有的进程才能删除用户
例子:删除tommy用户账号及主目录
[root@localhost ~]# userdel -r tommy
su命令
方法:su [-] [用户名]
功能:切换用户身份,超级用户可以切换为任何普通用户,而且不要输入口令。普通用户转为其他用户时需要输入被转换用户的口令,使用exit返回到原来的用户身份
主要选项:
- 如果使用-选项,则用户切换为新用户的同时使用新用户的环境变量。当不指定用户名时,默认为从普通用户转为超级用户。
例子:普通用户laiyu切换为超级用户,并使用超级用户的环境变量
[laiyu@localhost ~]$ pwd
/home/laiyu
[laiyu@localhost ~]$ su -
Password:
[root@localhost ~]# pwd
/root
[root@localhost ~]# exit
logout
[laiyu@localhost ~]$
说明:为保系统安全,当必要时才切换为超级用户,执行完后使用“exit”命令退回到普通用户身份。
例子:普通用户laiyu切换为jerry
[laiyu@localhost ~]$ su jerry
Password:
[jerry@localhost laiyu]$ pwd
/home/laiyu
说明:没使用“-”选项,所以当前工作目录仍然为/home/laiyu没变化。
id命令
方法:id [用户名]
功能:查看用户的UID,GID和用户所属组群的信息。如果不指定用户,则显示当前用户的相关信息
例子:查看用户jerry的用户信息
[jerry@localhost laiyu]$ id
uid=502(jerry) gid=503(helen) groups=503(helen) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[jerry@localhost laiyu]$ exit
exit
[laiyu@localhost ~]$ id jerry
uid=502(jerry) gid=503(helen) groups=503(helen)
管理组群的Shell命令
groupadd命令
格式:groupadd [选项] 组群名
功能:新建组群,只有超级用户才能使用此命令
主要选项:-g 组群ID 指定组群的GID
例:新建一名为helen的组群
[root@localhost ~]# groupadd helen
[root@localhost ~]# cat /etc/group
...
helen:x:503:
[root@localhost ~]# cat /etc/gshadow
...
helen:!::
说明:如果不指定群组ID,其GID由系统指定,groupadd的执行结果将在/etc/group和/etc/gshdow文件中增加一行记录,“!”表示组群没设置口令
groupmod命令
方法:groupmod [选项] 组群名
功能:修改指定组群的属性,只有超级用户才能使用此命令
主要选项:
-g 组群id 指定组群的GID
-n 组群名 指定组群的新名字
例子:改变组群helen名为jerry
[root@localhost laiyu]# groupmod -n jerry helen
[root@localhost laiyu]# id
uid=0(root) gid=0(root) 组=0(root) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost laiyu]# id jerry
uid=502(jerry) gid=503(jerry) 组=503(jerry)
groupdel命令
方法:groupdel 组群名
功能:删除指定的组群。只有超级用户才能使用此命令,在删除指定组群之前必须保证该组群不是任何用户的主要主群,否则要先删除那些以此组群为主
要组群的用户才能删除这个组群
[root@localhost laiyu]# groupdel jerry
groupdel: cannot remove the primary group of user 'jerry'
[root@localhost laiyu]# userdel -r jerry
[root@localhost laiyu]# groupdel jerry
groupdel: group 'jerry' does not exist
批量新建多个用户帐号
例:假设为新入学的08级学生添加为RHEL Server 5计算机的新用户,每个学生帐号的用户名为“s”+学号的组合。他们都属于一个组群08students。
第一:创建共用组群08students
[root@localhost ~]# groupadd -g 600 08students
为方便后续步骤,指定组群的GID为600
第二:编辑用户信息文件。
新建student.txt文件,严格按/etc/passwd文件的格式输入每个用户的用户名,UID,口令“x”,全名,主目录,登录Shell等等信息
s080101:x:601:600::/home/s080101:/bin/bash
s080102:x:602:600::/home/s080101:/bin/bash
s080103:x:603:600::/home/s080101:/bin/bash
s080104:x:604:600::/home/s080101:/bin/bash
s080105:x:605:600::/home/s080101:/bin/bash
s080106:x:606:600::/home/s080101:/bin/bash
s080107:x:607:600::/home/s080101:/bin/bash
...
第三:创建用户口令文件
新建password.txt文件,根据上述帐号信息,严格按照/etc/shadow文件的格式输入用户信息。
s080101:knei9e
s080102:kdn7i3n
s080103:kdnd3df
s080104:kdn89n3
s080105:88997dn
s080106:kdnnkdkd8
s080107:kdkdkd7
...
第四:利用newusers命令批量创建用户帐号
[root@localhost ~]# newusers < students.txt
如果没出先任何错误信息,那么查看/etc/passwd文件将发现sutdents.txt文件的内容出现在/etc/passwd文件中。系统还在/home目录下为每一个用户创建
主目录。
第五:利用命令pwunconv暂时取消shadow加密
[root@localhost ~]# pwunconv
注:为了用户口令文件中指定的口令可用,必先取消原有shadow加密。超级用户利用pwunconv命令将/etc/shadow文件中加密口令解密后保存
在/etc/passwd文件。并删除/etc/shadow文件。
第六:利用chpasswd命令为用户设置口令
[root@localhost ~]# chpasswd < password.txt
执行成功后,查看/etc/passwd文件,会看到password.txt中的口令均出现在/etc/passwd文件中相应的口令字段。
第7:利用pwconv命令恢复加密
[root@localhost ~]# pwconv
注:以批量新建的用户名登录时会发现命令提示符不太一样,如下所示,,如果需要使用默认的命令提示符号,可复制独立创建的用户如(tom)的用户主目
录中的设置文件.bash_profile和.bahsrc到对应目录下。如:cp /home/tom/.bash_profile /home/s080101
[root@localhost ~]# su s080101
bash-4.1$