分享

ubuntu 删除用户命令与Linux账号管理

 Vanlei 2011-10-17
ubuntu 删除用户命令与Linux账号管理
2010年02月02日 星期二 11:53
终端方法:以下用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/*



















Linux账号与身份管理

相关文件
/etc/passwd 系统账号信息
/etc/shadow 账号密码信息 经MD5 32位加密 在密码栏前面加『 * 』或『 ! 』表示禁止使用该账号
/etc/group 系统群组信息
/etc/gshadow
/etc/default/useradd 新增用户时的参考设置文件
/etc/login.defs 与密码及 UID/GID 有关的设置文件
/etc/skel/* 用户家目录参考目录
/etc/pam.d/passwd PAM验证模块
起始用户组 initial group
有效用户组 effective group
相关命令
newgrp 改变登陆组
useradd & adduser 建立新用户
[test@linux ~ ]$ useradd -m test 自动建立用户的登入目录
[test@linux ~ ]$ useradd -m -g pgroup test 指定所属组(初始用户组)
[test@linux ~ ]$ useradd -r test 建立一个系统账号,这个账号的UID会有限制(/etc/login.defs)
passwd 更改密码
[test@linux ~ ]$ passwd test
usermod 修改用户账号
userdel 删除账号
[test@linux ~ ]$ userdel -r test 连同家目录一起删除
一般用户使用的命令
chsh 更换登陆系统时使用的SHELL [-l]显示可用的SHELL;[-s]修改自己的SHELL
chfn 改变自己的相关信息
finger 查找并显示用户信息
id 显示用户的ID信息
[test@linux ~ ]$ id test
用户组相关命令
groupadd 添加组
groupmod 与usermod类似
groupdel 删除组
gpasswd
newgrp
切换用户身份
su test 更改用户 su - 进入root,且使用root的环境变量
sudo 以其他身份来执行指令
[test@linux ~ ]$ sudo mkdir /root/testing
Password:
visudo 编辑/etc/sudoers,该文件有一些比较特殊的语法,如果直接使用vi编辑,若输入有误则可能会造成无法启动sudo的后果,因此,建议使用visudo来编辑。该命令必须使用root的身份来执行。
格式:用户账号 登录的主机 = (可以变换的身份) 可以执行的命令
test ALL=(ALL) ALL 使用test成为可以随意使用sudo的身份,如果没有加上身份声明的话,即为test ALL= ALL,那么“默认是仅能进行root的身份切换”
%wheel ALL = (ALL) ALL 系统里所有wheel群组的用户都可用sudo,加上"%"代表用户组
%wheel ALL = (ALL) NOPASSWD: ALL wheel群组所有用户在使用sudo时都不用输入密码
除单一个人或单一用户组之外,还可以指定一些“账号别名,主机别名、命令别名”等数据来相互套用,别名必须要使用大写字母。例:
User_Alias ADMPW = vbird, dmtsai, vbird1, vbird3 将用户vbird, dmtsai, vbird1, vbird3加入ADMPW组
ADMPW ALL = NOPASSWD: !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, \\
!/usr/bin/passwd root 可以更改使用者密码,但不能更改root密码 (在指令前面加入 ! 代表不可)
用户的特殊SHELL和PAM模块
特殊的shell、/sbin/nologin
禁止用户登录。编辑/etc/nologin.txt文件,在此文件中说明用户不能登录的原因,那么下次用户想要登录系统时,屏幕上则会出现/etc/nologin.txt的内容,而不是默认的内容了。
PAM 模块:/etc/nologin、/etc/securetty
(Pluggable Authentication Modules, 嵌入式模块)
PAM的设置文件放在/etc/pam.d这个目录中
更多的环境相关设置在/etc/security/*中
PAM是通过自己提供的相关模块来进行验证,模块放在/lib/security/*中
PAM的设置文件范例
文件格式: 验证的类别 验证的控制标准 使用的PAM模块 该模块能使用的参数
验证的类别(Module type)
auth 进行用户的身份验证
account 检验用户是否具有正确的使用权限
session 管理用户正确使用该程序时的环境设置
password 提供验证的修改工作,如修改密码
验证的控制标准(control flag)
required 发生错误时,继续操作下面的模块,后续操作完成后返回failure信息
requisite 发生错误时,立刻给原程序发送failure的信息并且中断PAM的运行
optional 多用于显示信息
sufficient 通过验证时,立刻给原程序发送通过的信息并且中断PAM的运行
/etc/securetty
pam_securetty 模块最主要的功能是预防不安全的登录环境,而且主要针对root用户。
该模块被启用时,会去读取 /etc/securetty 文件,如果我们将被认定是安全的终端 terminal 环境写入该文件,则root仅可以在那几个终端环境下登录。
/etc/nologin
pam_nologin 模块也用于控制用户登录,但只针对一般用户,对root没有效果。
如果/etc/nologin 存在时,任何一个一般用户在尝试登录时,仅会获得该文件的内容,而无法登录主机。
/etc/security/*
Linux 系统的用户对话与邮件的使用
查询用户
who & w 看谁在线
last 最近登陆主机的信息
lastlog 最近登入的时间 读取 /var/log/lastlog
用户对话
talk 与其他用户交谈
write 发送信息
[abc@linux ~ ]$ write test
Hi, how are you...
按下 [ctrl] d 发送
mesg 设置终端机的写入权限,是否接收消息
[abc@linux ~ ]$ mesg n 禁止接收
[abc@linux ~ ]$ mesg y 打开
[abc@linux ~ ]$ mesg 查看当前的mesg状态
wall 向所有用户发送信息
[abc@linux ~ ]$ wall this is q test
用户邮件信箱
mail 写mail
[abc@linux ~ ]$ mail username@localhost -s “邮件标题”
[abc@linux ~ ]$ mail test -s "nice to meet you"
hello,test
Nice to meet you in the network.
byebye!
.结束时输入点(.)
Cc:
手动增加用户
PS:最好不要手动修改
一些检查工具
pwck
pwconv 将/etc/passwd 内的账号与密码移到/etc/shadow中
pwunconv 将/etc/shadow内的密码栏数据写回/etc/passwd 中,并且删除/etc/shadow 文件
chpasswd
账号的建立
建立所需要的用户组(vi /etc/group)
将/etc/group与/etc/gshadow同步(grpconv)
建立账号的各个属性(vi /etc/passwd)
将/etc/passwd与/etc/gshadow同步(pwconv)
建立该账号的密码(passwd)
建立用户家目录(cp -a /etc/skel /home/username)
更改用户家目录属性(chown -R username.group /home/username)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多