linux账号管理:

[root@www ~]# useradd [-u UID] [-g 初始群组] [-G 次要群组] [-mM]\

>  [-c 说明栏] [-d 家目录绝对路径] [-s shell] 使用者账号名

选项与参数:

-u  :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个账号;

-g  :后面接的那个组名就是initial group

      该群组的 GID 会被放置到 /etc/passwd 的第四个字段内。

-G  :后面接的组名则是这个账号还可以加入的群组。

      这个选项与参数会修改 /etc/group 内的相关数据喔!

-M  :强制!不要创建用户家目录!(系统账号默认值)

-m  :强制!要创建用户家目录!(一般账号默认值)

-c  :这个就是 /etc/passwd 的第五栏的说明内容啦~可以随便我们配置的啦~

-d  :指定某个目录成为家目录,而不要使用默认值。务必使用绝对路径!

-r  :创建一个系统的账号,这个账号的 UID 会有限制 (参考 /etc/login.defs)

-s  :后面接一个 shell ,若没有指定则默认是 /bin/bash 的啦~

-e  :后面接一个日期,格式为『YYYY-MM-DD』此项目可写入 shadow 第八字段,

      亦即账号失效日的配置项目啰;

-f  :后面接 shadow 的第七字段项目,指定口令是否会失效。0为立刻失效,

      -1 为永远不失效(口令只会过期而强制于登陆时重新配置而已。)

 

范例:完全参考默认值创建一个用户,名称为 vbird1

[root@www ~]# useradd vbird1

[root@www ~]# ll -d /home/vbird1

drwx------ 4 vbird1 vbird1 4096 Feb 25 09:38 /home/vbird1

# 默认会创建用户家目录,且权限为 700

 

[root@www ~]# grep vbird1 /etc/passwd /etc/shadow /etc/group

/etc/passwd:vbird1:x:504:505::/home/vbird1:/bin/bash

/etc/shadow:vbird1:!!:14300:0:99999:7:::

/etc/group:vbird1:x:505:    <==默认会创建一个与账号一模一样的群组名

 

 

 

 

 

 

 

[root@www ~]# passwd [--stdin]  <==所有人均可使用来改自己的口令

[root@www ~]# passwd [-l] [-u] [--stdin] [-S] \

>  [-n 日数] [-x 日数] [-w 日数] [-i 日期] 账号 <==root 功能

选项与参数:

--stdin :可以透过来自前一个管线的数据,作为口令输入,对 shell script 有帮助!

-l  :是 Lock 的意思,会将 /etc/shadow 第二栏最前面加上 ! 使口令失效;

-u  :与 -l 相对,是 Unlock 的意思!

-S  :列出口令相关参数,亦即 shadow 文件内的大部分信息。

-n  :后面接天数,shadow 的第 4 字段,多久不可修改口令天数

-x  :后面接天数,shadow 的第 5 字段,多久内必须要更动口令

-w  :后面接天数,shadow 的第 6 字段,口令过期前的警告天数

-i  :后面接『日期』,shadow 的第 7 字段,口令失效日期

 

范例:请 root 给予 vbird2 口令

[root@www ~]# passwd vbird2

Changing password for user vbird2.

New UNIX password: <==这里直接输入新的口令,屏幕不会有任何反应

BAD PASSWORD: it is WAY too short <==口令太简单或过短的错误!

Retype new UNIX password:  <==再输入一次同样的口令

passwd: all authentication tokens updated successfully.  <==竟然还是成功修改了

 

范例:使用 standard input 创建用户的口令

[root@www ~]# echo "abc543CC" | passwd --stdin vbird2

Changing password for user vbird2.

passwd: all authentication tokens updated successfully.

 

 

 

 

[root@www ~]# usermod [-cdegGlsuLU] username

选项与参数:

-c  :后面接账号的说明,即 /etc/passwd 第五栏的说明栏,可以加入一些账号的说明。

-d  :后面接账号的家目录,即修改 /etc/passwd 的第六栏;

-e  :后面接日期,格式是 YYYY-MM-DD 也就是在 /etc/shadow 内的第八个字段数据啦!

-f  :后面接天数,为 shadow 的第七字段。

-g  :后面接初始群组,修改 /etc/passwd 的第四个字段,亦即是 GID 的字段!

-G  :后面接次要群组,修改这个使用者能够支持的群组,修改的是 /etc/group 啰~

-a  :与 -G 合用,可『添加次要群组的支持』而非『配置』喔!

-l  :后面接账号名称。亦即是修改账号名称, /etc/passwd 的第一栏!

-s  :后面接 Shell 的实际文件,例如 /bin/bash /bin/csh 等等。

-u  :后面接 UID 数字啦!即 /etc/passwd 第三栏的数据;

-L  :暂时将用户的口令冻结,让他无法登陆。其实仅改 /etc/shadow 的口令栏。

-U  :解锁Ulock

 

 

 

 

 

[root@www ~]# userdel [-r] username

选项与参数:

-r  :连同用户的家目录也一起删除

 

范例:删除 vbird2 ,连同家目录一起删除

[root@www ~]# userdel -r vbird2

 

 

 

 

[root@www ~]# finger [-s] username

选项与参数:

-s  :仅列出用户的账号、全名、终端机代号与登陆时间等等;

-m  :列出与后面接的账号相同者,而不是利用部分比对 (包括全名部分)

 

范例一:观察 vbird1 的用户相关账号属性

[root@www ~]# finger vbird1

Login: vbird1                           Name: (null)

Directory: /home/vbird1                 Shell: /bin/bash

Never logged in.

No mail.

No Plan.

 

 

[root@www ~]# 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

# 上面信息其实是同一行的数据!包括会显示 UID/GID 以及支持的所有群组!

 

 

 

 

 

 

 

 

 

[root@www ~]# groupadd [-g gid] [-r] 组名

选项与参数:

-g  :后面接某个特定的 GID ,用来直接给予某个 GID

-r  :创建系统群组啦!与 /etc/login.defs 内的 GID_MIN 有关。

 

范例一:新建一个群组,名称为 group1

[root@www ~]# groupadd group1

[root@www ~]# grep group1 /etc/group /etc/gshadow

/etc/group:group1:x:702:

/etc/gshadow:group1:!::

# 群组的 GID 也是会由 500 以上最大 GID+1 来决定!

 

 

 

[root@www ~]# groupmod [-g gid] [-n group_name] 群组名

选项与参数:

-g  :修改既有的 GID 数字;

-n  :修改既有的组名

 

范例一:将刚刚上个命令创建的 group1 名称改为 mygroup GID 201

[root@www ~]# groupmod -g 201 -n mygroup group1

[root@www ~]# grep mygroup /etc/group /etc/gshadow

/etc/group:mygroup:x:201:

/etc/gshadow:mygroup:!::

 

 

 

[root@www ~]# groupdel [groupname]

 

范例一:将刚刚的 mygroup 删除!

[root@www ~]# groupdel mygroup

 

 

 

 

# 关于系统管理员(root)做的动作:

[root@www ~]# gpasswd groupname

[root@www ~]# gpasswd [-A user1,...] [-M user3,...] groupname

[root@www ~]# gpasswd [-rR] groupname

选项与参数:

    :若没有任何参数时,表示给予 groupname 一个口令(/etc/gshadow)

-A  :将 groupname 的主控权交由后面的使用者管理(该群组的管理员)

-M  :将某些账号加入这个群组当中!

-r  :将 groupname 的口令移除

-R  :让 groupname 的口令栏失效

 

# 关于群组管理员(Group administrator)做的动作:

[someone@www ~]$ gpasswd [-ad] user groupname

选项与参数:

-a  :将某位使用者加入到 groupname 这个群组当中!

-d  :将某位使用者移除出 groupname 这个群组当中。

 

范例一:创建一个新群组,名称为 testgroup 且群组交由 vbird1 管理:

[root@www ~]# groupadd testgroup  <==先创建群组

[root@www ~]# gpasswd testgroup 

Changing the password for group testgroup

New Password:

Re-enter new password:

# 输入两次口令就对了

[root@www ~]# gpasswd -A vbird1 testgroup  <==加入群组管理员为 vbird1

[root@www ~]# grep testgroup /etc/group /etc/gshadow

/etc/group:testgroup:x:702:

/etc/gshadow:testgroup:$1$I5ukIY1.$o5fmW.cOsc8.K.FHAFLWg0:vbird1:

# 很有趣吧!此时 vbird1 则拥有 testgroup 的主控权喔!身份有点像板主啦!

 

范例二:以 vbird1 登陆系统,并且让他加入 vbird1, vbird3 成为 testgroup 成员

[vbird1@www ~]$ id

uid=504(vbird1) gid=505(vbird1) groups=505(vbird1) ....

 

[vbird1@www ~]$ gpasswd -a vbird1 testgroup

[vbird1@www ~]$ gpasswd -a vbird3 testgroup

[vbird1@www ~]$ grep testgroup /etc/group

testgroup:x:702:vbird1,vbird3