日期:2014-05-16  浏览次数:20770 次

Linux 用户、用户组、文件权限

最近打算在linux系统下进行软件到开发,对用户权限的知识欠缺很多,于是,打算仔细学习一下这方面的知识

其权限主要是有用户、用户组、和用户权限组成

用户就是登录到linux的用户,用UID表示

用户组就是用户的分组,用GID表示

权限分为执行(x)、读(r)、写(w)

?

linux的用户信息保存在/etc/passwd文件中,用户密码相关信息保存在/etc/shadow文件中


/etc/passwd文件格式:
用户名:密码:UID:GID:用户信息:HOME目录路径:用户shell
其中UID为0则是用户root,1~499为系统用户,500以上为普通用户

?

/etc/shadow保存用户密码信息,包括加密后的密码,密码过期时间,密码过期提示天数等。

?

用户组信息保存在/etc/group文件中.
格式如下:
用户组名:组密码:GID:组内帐号(多个帐号用逗号分隔)

?

用户登录后,/etc/passwd文件里的GID为用户的初始用户组。
用户的初始用户组这一事实不会再/etc/group中体现。

?

?

?

查看当前用户的用户组命令:
[root@local opt]#groups
root bin daemon sys adm disk wheel
输出的信息中,第一个用户组为当前用户的有效用户组(当前用户组)

?

?

?

切换有效用户组命令:
[root@local opt]#newgrp 用户组名
要离开新的有效用户组,则输入exit回车。

?

?

?

新建用户命令:
[root@local opt]#useradd 用户名 -g 初始用户组 -G 其他用户组(修改/etc/group) -c 用户说明 -u 指定UID

?

?

?

建完用户需要为用户设置密码:
[root@local opt]#passwd 用户名

?

?

?

用户要修改自己密码命令:
[root@local opt]#passwd

?

?

?

修改用户信息命令:
[root@local opt]#usermod 参数 用户名
参数:
?-c 说明
?-g 组名 初始用户组
-e 过期日期 格式:YYYY-MM-DD
?-G 组名 其他用户组
?-l 修改用户名
?-L 锁定账号(在/etc/shadow文件中用户对应密码密码串的前面加上两个叹号(!!))
?-U 解锁

?

?

?

删除用户命令:
[root@local opt]#userdel [-r] 用户名
其中,参数-r为删除用户的home目录。
其实,可能在系统其他地方也有该用户文件,要完整删除一个用户和其文件要先找到属于他的文件:
[root@local opt]#find / -user 用户名
然后删除,再运行userdel删除用户。

?

查看可用shell命令:
[root@local opt]#chsh -l
修改自己的shell命令:
[root@local opt]#chsh -s

?

查看自己或某人UID/GID信息:
[root@local opt]#id [用户名]
返回信息中groups为有效用户组

?

新增用户组命令:
[root@local opt]#groupadd 用户组名

?

修改用户组名命令:
[root@local opt]#groupmod -n 名称

?

删除用户组命令:
[root@local opt]#groupdel 用户组名

?

设置用户组密码命令:
[root@local opt]#gpasswd 用户组名

?

如果gpasswd加上参数则有其他功能

?

设置用户组管理员命令:
[root@local opt]#gpasswd -A 用户名 用户组名