Linux 操作基本全是命令行,但却有不少人热忠于命令行,今天一起学习一下帐号管理的相关命令
不论由本机还是远程登录linux系统,每个人都应该有一个拥有自己的帐号,并且对于不同的资源拥有不同的权力,在Red Hat Linux中将帐号分成以下二种类型;
1.用户帐号:所谓此就是实际的人员,例如,redhat,或是罗辑的对象,例如程序用来执行特定工作的帐号.但每个帐号都包含唯一的一个识别码,以及组的识别码
2.组帐号,是一个罗辑单位,它主要的功能是用来集合特定的用户,以授予它们特定的存取权限,例如,存,取,执行.
在进行帐号管理前,必先有一个同"root"同一等级的权限帐号,root是系统权限最高的supper user,它可以在系统中执行任何的设置,因此,除非必要不要随便使用root进行登录,最好的方式新建一用户,然后利用su或"su -"命令变更管理权限,通常所有用户的帐号信息全部记录/etc/passwd文件里,通称为"标准用户",
[root@server root]#vi /etc/passwd
root:x:0:0:root:/root:/bin/bash
有七个字段,第一为登录名,第二为有无密码,第三为UID,第四为GID,第五为说明,第六为主目录,第七为登录shell,
使用useradd增加帐号
虽然大部份Unix/Linux系统中都可以直接编辑/etc/passwd来新增用户帐号,但这个文件的修改十分麻烦,而且若存在/etc/shadow文件即会使所有编辑失效,要解决这个问题,就用useradd,adduser,命令来增加帐号,
useradd,adduser这二个命令看似接近,它们有什么关系么?
[root@server root]#ls -l /usr/sbin/adduser
lrwxrwxrwx 1 root root 7 4月 9 22:34 /usr/sbin/adduser->useradd
以上的结果,证明是adduser实际上是useradd的一个链接文件,两者功能相同,如此设计只是为了方便用户的使用,因此您可选择你喜欢的命令,
第一步,如果想增加一个帐号,首要考虑的是此帐号是否已经存在?可用"finger"命令来检查新增用户是否存在,以防因重复而失败,用法十分简单,只需输入finger后跟想增的用户名即可:
[root@server root]#finger redhat #存在
Login: redhat Name:(null)
Directory:/home/redhat shell:/bin/bash
Nerver Logged in.
No mail.
No Plan.
[root@server root]#finger feng #不存在
finger:feng:no such user.
也可以用:[root@server root]#cat /etc/passwd |grep "增加的用户"
查找的到就说明有,没显示可提示错误就可增加,建议用finger.
第二步:增加帐号,由以上的结果可知,redhat已经存在不可新增了,但是feng尚未增加,在此以feng为例:
[root@server root]#useradd feng 或
[root@server root]#useradd -u 501 -d /home/feng -s /bin/bash feng
第一种方法是最简单的新增帐号,而其它的则由系统默认增加,帐号增加后也可用finger查看帐号信息,或是由修改/etc/passwd其中的内容.
第二种方法虽然用参数麻烦,但是可以一次将所有的帐号信息设置完毕,因此也不失为一个好办法,在此将上面的常用参数讲一下:
-c 将备注信息加入/etc/passwd的备注栏中
-d 指定用户的登录主目录,这个目录不需要先行创建,
-e 可设定帐号的有效期限
-f 可设定帐号过期后多少天强行关闭
-g 指定组id,这个组id必先存在/etc/group中,否则失败
-u 指定用户uid,通常是大于500,500以下由系统所使用
同样,也可使用"Red Hat Linux用户管理器"在命令行输入:
[root@server root]#redhat-config-users
第三步,要是新增的用户有不妥,可使用usermod进行修改帐号信息,其主要参数有:
-c重新修改帐号的备注信息
-d修改帐号的登录目录
-e修改过期时间
-f修改缓冲天数
-g修改用户所属的组
-G 修改用户的附加组
--l修改用户帐号名称
-s 修改用户使用的shell
-u修改用户uid
假设要修改先前创建的redhat帐号信息,同时将用户的备注文字改成"Vice President",而且将主目录改成/root,则可使用以下命令:
[root@server root]#usermod -c "Vice President" -d /root redhat
不论由本机还是远程登录linux系统,每个人都应该有一个拥有自己的帐号,并且对于不同的资源拥有不同的权力,在Red Hat Linux中将帐号分成以下二种类型;
1.用户帐号:所谓此就是实际的人员,例如,redhat,或是罗辑的对象,例如程序用来执行特定工作的帐号.但每个帐号都包含唯一的一个识别码,以及组的识别码
2.组帐号,是一个罗辑单位,它主要的功能是用来集合特定的用户,以授予它们特定的存取权限,例如,存,取,执行.
在进行帐号管理前,必先有一个同"root"同一等级的权限帐号,root是系统权限最高的supper user,它可以在系统中执行任何的设置,因此,除非必要不要随便使用root进行登录,最好的方式新建一用户,然后利用su或"su -"命令变更管理权限,通常所有用户的帐号信息全部记录/etc/passwd文件里,通称为"标准用户",
[root@server root]#vi /etc/passwd
root:x:0:0:root:/root:/bin/bash
有七个字段,第一为登录名,第二为有无密码,第三为UID,第四为GID,第五为说明,第六为主目录,第七为登录shell,
使用useradd增加帐号
虽然大部份Unix/Linux系统中都可以直接编辑/etc/passwd来新增用户帐号,但这个文件的修改十分麻烦,而且若存在/etc/shadow文件即会使所有编辑失效,要解决这个问题,就用useradd,adduser,命令来增加帐号,
useradd,adduser这二个命令看似接近,它们有什么关系么?
[root@server root]#ls -l /usr/sbin/adduser
lrwxrwxrwx 1 root root 7 4月 9 22:34 /usr/sbin/adduser->useradd
以上的结果,证明是adduser实际上是useradd的一个链接文件,两者功能相同,如此设计只是为了方便用户的使用,因此您可选择你喜欢的命令,
第一步,如果想增加一个帐号,首要考虑的是此帐号是否已经存在?可用"finger"命令来检查新增用户是否存在,以防因重复而失败,用法十分简单,只需输入finger后跟想增的用户名即可:
[root@server root]#finger redhat #存在
Login: redhat Name:(null)
Directory:/home/redhat shell:/bin/bash
Nerver Logged in.
No mail.
No Plan.
[root@server root]#finger feng #不存在
finger:feng:no such user.
也可以用:[root@server root]#cat /etc/passwd |grep "增加的用户"
查找的到就说明有,没显示可提示错误就可增加,建议用finger.
第二步:增加帐号,由以上的结果可知,redhat已经存在不可新增了,但是feng尚未增加,在此以feng为例:
[root@server root]#useradd feng 或
[root@server root]#useradd -u 501 -d /home/feng -s /bin/bash feng
第一种方法是最简单的新增帐号,而其它的则由系统默认增加,帐号增加后也可用finger查看帐号信息,或是由修改/etc/passwd其中的内容.
第二种方法虽然用参数麻烦,但是可以一次将所有的帐号信息设置完毕,因此也不失为一个好办法,在此将上面的常用参数讲一下:
-c 将备注信息加入/etc/passwd的备注栏中
-d 指定用户的登录主目录,这个目录不需要先行创建,
-e 可设定帐号的有效期限
-f 可设定帐号过期后多少天强行关闭
-g 指定组id,这个组id必先存在/etc/group中,否则失败
-u 指定用户uid,通常是大于500,500以下由系统所使用
同样,也可使用"Red Hat Linux用户管理器"在命令行输入:
[root@server root]#redhat-config-users
第三步,要是新增的用户有不妥,可使用usermod进行修改帐号信息,其主要参数有:
-c重新修改帐号的备注信息
-d修改帐号的登录目录
-e修改过期时间
-f修改缓冲天数
-g修改用户所属的组
-G 修改用户的附加组
--l修改用户帐号名称
-s 修改用户使用的shell
-u修改用户uid
假设要修改先前创建的redhat帐号信息,同时将用户的备注文字改成"Vice President",而且将主目录改成/root,则可使用以下命令:
[root@server root]#usermod -c "Vice President" -d /root redhat