Linux管理用户账号

在Linux环境下采用命令行模式管理用户账号有多种方式,例如,可以使用文本编辑器(vi,emacs等)直接修改/etc/passwd文件,添加新用户;也可以使用命令adduser、userdel等用户管理命令,以及使用pwconv命令使passwd与shadow文件保持一致。

一、查看用户信息

whoami  查看当前用户名
who  查看当前登录系统用户
w  查看当前登录系统用户及详细信息
id <username>  查看用户的UID、GID及所归属的用户组
su <username>  用户切换工具
finger <username>  查看指定用户详细信息
write <username>  给<username>发送信息
wall <username>  给所有用户发送信息

二、添加用户、修改用户密码

Linux操作系统下添加用户的命令主要有useradd和adduser两个。
语法结构:useradd [-u uid [-o]] [-g group] [-G group,...] [-d home] [-s shell] [-c comment] [-k

teplate] [-f inactive] [-e expire] [-p passwd] name

参数说明:
-u 指定用户ID
-g 指定用户组群
-d 指定用户主目录
-s 系统登录时启用的shell
-c 简单描述用户内容
-p 指定密码

以下是使用useradd命令添加用户linuxuser1的示例:
# useradd linuxuser1
# ls /home/
linuxuser1 test yangzd
# less /etc/passwd | grep linuxuser1
linuxuser1:x:502:502::/home/linuxuser1:/bin/bash

建立了linuxuser1用户后,在/home目录下可以看到linuxuser1这个目录。用less命令读取/etc/passwd文件,并通

过grep命令抽取linuxuser字段将得出/etc/passwd中linuxuser用户信息。用户可以从命令执行结果内取得uid

(502)、gid(502)、用户主目录(/home/linuxuser1)以及shell程序(bash)。

以下使用参数添加用户:
# useradd linuxuser2 -c test -d /home/linuxuser_test -g root -s /bin/bash -u 509

在这条命令中,添加了用户linuxuser2,描述为test,主目录为/home/linuxuser_test,所属群组root,使用

shell程序为bash,用户ID为509。
# passwd linuxuser2
Changing password for user linuxuser2
New password:
....
以上命令修改用户linuxuser2的密码


三、修改用户属性

语法:usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l<帐号名称>][-s ][-u ][用户帐号]

usermod -c <备注信息>       修改用户描述信息
usermod -d <用户主目录>     修改用户主目录
usermod -e <有效期限>       修改用户有效期
usermod -f <缓冲天数>       修改用户密码在多少天过期
usermod -g <组群>           修改用户所属群组
usermod -G <组群>           修改用户所属于附加组群
usermod -s <shell>          修改用户登录shell
usermod -u <uid>            修改用户ID号

四、用户密码管理

格式: passwd -d <username>  
删除密码后,登录时不需要密码。

格式:
passwd -l <username>   //锁定某账号
passwd -u <username>   //启用锁定账号
passwd -u -f <username>  //强制启用密码为空的已锁定账号
passwd -S <username>   //显示账号密码信息

Linux采用/etc/passwd文件管理用户信息(包括密码),但是此文件对非系统用户仍然可读,虽然密码经过加密处理

,但安全性仍然存在问题,passwd文件中存放了对口令明文采用DES(data encryption standard)和MD(MESSAGE

DIGEST)方式加密后的密文,利用高性能计算机及蛮力搜索的方法,完全可能用穷举的方法破解口令明文。因此,

为了加强系统安全性,系统提供了专门的密码管理文件/etc/shadow。几乎所有的Linux都使用shadow方式对文件加

密,密文保存在/etc/shadow文件中,而该文件对一般用户是不可读的,只有root用户才能读取。
此文件专门用以保存系统所有用户密码信息(仅root可读写),管理员可以设置密码保存在/etc/passwd

或/etc/shadow文件中,如果保存在/etc/shadow文件中,则/etc/passwd文件第2项显示为X。
....
# pwconv    //将密码写入到shadow文件
....

 

群组管理
# groupadd testgroup2 -g 205   //添加组群testgroup2,-g为指定ID

groupmod -g <组群ID>   修改组群ID号
groupmod -n <组群名>   重命名组群名称

组群目录:/etc/group

 

文件及文件夹权限管理

当使用"# ls -l"查看文件详细列表时,第一列显示" -rw-r--r--"字串,表示文件权限位。
权限位最前的横杠表示文件类型。文件类型有7种:
d dictionary,目录。
l link,符号链接(指向另一个文件)
s socket,套接字文件 。
b block,块设备文件 。
c character,字符设备文件。
p pipe,命名管道文件。

一个文件被创建,就具有3种访问方式:
r read,显示/读取该文件内容
w write,编辑或删除文件
x execute,执行文件程序

按照Linux对系统用户的管理方式,针对某个文件的权限,系统将用户分为3类。
u user,创建文件的用户
g group,与创建者同组群的其他用户
o other,与创建者不同组群的其他用户

像" -rw-r--r--"显示的权限位信息分为3组:
文件属主权限是前面3位rw-,表示创建者具有可读可写权限
同组用户权限是中间3位r--,表示同组其他用户具有读权限
其他用户权限是最后3位r--,与上面相同


使用chmod命令字符模式管理权限
格式:chmod [who] operator [permission] filename
(1)who的含义
u 文件属主权限
g 同组用户权限
o 其他用户权限
a 所有用户

(2)operator的含义
+ 增加权限
- 取消权限
= 设定权限

(3)permission的含义
r 读权限
w 写权限
x 执行权限
s 文件属主和组set-ID
l 给文件加锁,使他用户无法访问
U、g、o针对文件属、同组用户及其他用户的操作

如:
chmod a-x myfile   //收回所有用户的执行权限 rw-rw-rw-
chmod og-w myfile   //收回同组用户和其他用户的写权限 rw-r--r--
chmod go+x myfile   //赋予同组用户和其他用户执行权限 rwxrwxr-x


绝对模式管理用户权限
将文件的三种权限数字化处理,其本质作用与字符模式相同。
4 代表 r
2 代表 w
1 代表 x

将字符模式管理中的案例用绝对模式表示为:
chmod 666 myfile
chmod 644 myfile
chmod 771 myfile


文件夹权限修改
chmod 400 test_dir1/*   //修改文件夹下的文件和文件夹权限为400,但是子文件夹下的文件不受影响
chmod -R 400 test_dir1/*    //递归所有子目录及文件,修改成此权限。

文件属主管理及掩码设置
当把一用户文件复到另一用户目录下时,有时候需要一起更改文件启属主。
格式: chown [option]... owner[:[group]] file...
-c changes,效果类似“-v”参数,但仅回报更改部分。
-f --quite silent 不显示错误信息。
-h --no-dereference 只对符号连接的文件作修改,而不更改其他任何相关文件。
-R recursive  递归处理
-v version 显示指令执行过程
--reference=<参考文件或目录>把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同。
例如:
# chown yangzongde test.pdf   //修改用拥有者为yangzongde
# chown yangzongde:users test.pdf  //修改所在组群

文件默认权限是指文件创建时所拥有的权限,Linux操作系统通过设置文件默认权限屏蔽码来指定,其计算公式如下:
文件创建时默认权限=0666-umask
文件夹创建时默认权限=0777-umask
例如,设定文件屏蔽码为0022,则创建的文件权限为0666-0022=0644,创建的文件夹权限为0777-0022=0755。设置Linux文件屏蔽码命令为umask。

例如:
# umask    //显示当前屏蔽码
# umask 0000   //修改屏蔽码
# touch test.txt  //创建文件
# mkdir testdir   //创建文件夹
# ls -l   //查看创建文件权限

 

 

制作人:飞虎                                           无兄弟不编程!

====================================================

 

欢迎加QQ群进行更多交流:305397511     专注于php、mysql以及开源框架

 

posted @ 2011-10-24 20:13  飞虎cnblog  阅读(540)  评论(0编辑  收藏  举报
友情链接:技术迷 | JSM官方博客 | 阿旭博客 | 有声小说在线听