分类: 系统运维
2013-03-01 13:19:43
终端方法:以下用newuser代替想要的账户
在root用户下:userdel -r newuser
在普通用户下:sudo userdel -r newuser
因为你需要彻底删除用户,所以加上-r的选项,在删除用户的同时一起把这个用户的宿主目录和邮件目录删除。
帐号管理
好啦!既然要管理帐号,当然是由新增与移除者开始的啰~底下我们就分别来谈一谈如何新增、 移除与更改者的相关资讯吧~
新增与移除使用者: useradd, 相关设定档, passwd, usermod, userdel
要如何在 Linux 的系统新增一个使用者啊?呵呵~真是太简单了~直接利用 useradd 这个指令即可! 他的指令下达方法如下:
# useradd
[root@linux ~]# useradd [-u UID] [-g initial_group] [-G other_group] \
> -[Mm] [-c 说明栏] [-d home] [-s shell] username
参数:
-u :后面接的是 UID ,是一组数字。直接指定一个特定的 UID 给这个帐号;
-g :后面接的那个群组名称就是我们上面提到的 initial group 啦~
该 group ID (GID) 会被放置到 /etc/passwd 的第四个栏位内。
-G :后面接的群组名称则是这个帐号还可以支援的群组。
这个参数会修改 /etc/group 内的相关资料喔!
-M :强制!不要建立使用者家目录
-m :强制!要建立使用者家目录!
-c :这个就是 /etc/passwd 的第五栏的说明内容啦~可以随便我们设定的啦~
-d :指定某个目录成为家目录,而不要使用预设值;
-r :建立一个系统的帐号,这个帐号的 UID 会有限制 (/etc/login.defs)
-s :后面接一个 shell ,预设是 /bin/bash 的啦~
范例:
范例一:完全参考预设值建立一个使用者,名称为 vbird1
[root@linux ~]# useradd vbird1
[root@linux ~]# ls -l /home
drwxr-xr-x 3 vbird1 vbird1 4096 Aug 30 17:33 vbird1
[root@linux ~]# grep vbird1 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird1:x:502:502::/home/vbird1:/bin/bash
/etc/shadow:vbird1:!!:13025:0:99999:7:::
/etc/group:vbird1:x:502:
# 做这个范例只是想要让您瞭解,其实系统已经规范好了一些新增使用者时的参数了!
# 因此,当我们使用 useradd 时,系统会主动的去修改 /etc/passwd 与 /etc/shadow,
# 而这两个档案内的相关栏位参考值,则会以一些设定档的内容来规范喔!
# 同时也要注意到,使用 useradd 新增使用者时,这个使用者的 /etc/shadow
# 密码栏会是不可登入的 (以 !! 为开头),因此还需要使用 passwd
# 来给予 vbird1 密码后,才算新增完毕!
范例二:我知道我的系统当中有个群组名称为 users ,且 UID 700 并不存在,请用这两个参数给予 vbird2 建立一个帐号!
[root@linux ~]# useradd -u 700 -g users vbird2
[root@linux ~]# ls -l /home
drwxr-xr-x 3 vbird2 users 4096 Aug 30 17:43 vbird2
[root@linux ~]# grep vbird2 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird2:x:700:100::/home/vbird2:/bin/bash
/etc/shadow:vbird2:!!:13025:0:99999:7:::
# 看一下,UID 与 initial group 确实改变成我们需要的了!
范例三:建立一个系统帐号,名称为 vbird3
[root@linux ~]# useradd -r vbird3
[root@linux ~]# grep vbird3 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird3:x:101:102::/home/vbird3:/bin/bash
/etc/shadow:vbird3:!!:13025::::::
/etc/group:vbird3:x:102:
# 很重要喔!您会发现, UID 竟然是 101 ,而 GID 怎么会是 102,
# 并且与 /etc/group 有对应的关系喔!有没有加 -r 差很多ㄟ!
我的天呐!这个指令更动的档案怎么怎么多啊?对啊!你才知道啊~ 这也是为啥我们说帐号管理是很复杂的啦~而且他参考的设定档才更多哩! 这个指令至少可能会更动到的地方有:
* /etc/passwd
* /etc/shadow
* /etc/group
* /etc/gshadow
* /home/username
那请教一下,您有没有想过,以上述的第一个范例一好了, 为何 useradd vbird1 他会主动在 /home/vbird1
建立起使用者的家目录?家目录内有什么资料且来自哪里? 为何预设使用的是 /bin/bash 这个 shell ?呵呵!这就得要说明一下
useradd 所使用的参考档案啰!
# 相关设定档
我们使用 useradd 去新增使用者时,一些在 /etc/passwd 当中的值会去参考‘ /etc/default/useradd ’ ,这个档案的内容有点像这样:
GROUP=100 <==预设的群组
HOME=/home <==预设的家目录所在目录
INACTIVE=-1 <==在 /etc/shadow 内的第 7 栏
EXPIRE= <==在 /etc/shadow 内的第 8 栏
SHELL=/bin/bash <==预设的 shell
SKEL=/etc/skel <==使用者家目录的内容资料参考目录
关于群组的建立机制:
当我们直接使用 useradd 来新增帐号时,在预设的情况下,相关的资讯都是参考 /etc/default/useradd 这个档案内容的设定的。不过,对于使用者群组的建立机制中, 则有两种不一样的机制存在的:
* 以 FC4 为代表,新建使用者时,若无指定 initial group , 则系统会主动建立一个与帐号相同的群组名称,以该群组作为使用者的 initial group;
* 以 SuSE 9 为代表,新建使用者时,预设不会建立新群组,而以 /etc/default/useradd 内的 GROUP 设定值作为使用者的 initial group 。
这应该是很容易理解才是~如果看不懂,请回去前一小节查阅一下 /etc/passwd, /etc/shadow 的相关内容架构。
关于使用者家目录的参考:/etc/skel/*