首页 > 数字化转型 > ERP > LINUX下的用户和组的概念和管理
用到了用户和组的管理的地方,有些搞不清楚,网上搜了些资料,也懒的整理了,直接东拼西凑的贴在这里吧。
其实最主要的就是/etc/group和/etc/passwd两个文件,搞清除了里面的内容、含义、权限,然后再搞几个命令,一般的用户管理也就都搞定了。
[@more@]用户组(Group)配置文件主要有 /etc/group和/etc/gshadow,其中/etc/gshadow是/etc/group的加密信息文件。
1、/etc/group 解说;
用户组的特性在系统管理中为系统管理员提供了极大的方便,但安全性也是值得关注的,如某个用户下有对系统管理有最重要的内容,最好让用户拥有独立的用户组,或者是把用
户下的文件的权限设置为完全私有;另外root用户组一般不要轻易把普通用户加入进去,
2、/etc/group 内容具体分析
/etc/group 的内容包括用户组(Group)、用户组口令、GID及该用户组所包含的用户(User),每个用户组一条记录;格式如下:
group_name:passwd:GID:user_list
在/etc/group 中的每条记录分四个字段:
第一字段:用户组名称;
第二字段:用户组密码;
第三字段:GID
第四字段:用户列表,每个用户之间用,号分割;本字段可以为空;如果字段为空表示用户组为GID的用户名;
我们举个例子:
root:x:0:root,linuxsir 注:用户组root,x是密码段,表示没有设置密码,GID是0,root用户组下包括root、linuxsir以及GID为0的其它用户(可以通过 /etc/passwd查看);
beinan:x:500:linuxsir 注:用户组beinan,x是密码段,表示没有设置密码,GID是500,beinan用户组下包括linuxsir用户及GID为500的用户(可以通 过/etc/passwd查看);
linuxsir:x:502:linuxsir 注:用户组linuxsir,x是密码段,表示没有设置密码,GID是502,linuxsir用户组下包用户linuxsir及GID为502的用户 (可以通过/etc/passwd查看)
;helloer:x:503: 注:用户组helloer,x是密码段,表示没有设置密码,GID是503,helloer用户组下包括GID为503的用户,可以通过 /etc/passwd查看;
而/etc/passwd 对应的相关的记录为:
root:x:0:0:root:/root:/bin/bashbeinan:x:500:500:beinan sun:/home/beinan:/bin/bashlinuxsir:x:505:502:linuxsir
open,linuxsir office,13898667715:/home/linuxsir:/bin/bashhelloer:x:502:503::/home/helloer:/bin/bash
/etc/passwd文件是一个纯文本文件,每行采用了相同的格式: name:password:uid:gid:comment:home:shell 它们的含义如下:域说明name用户登录名password用户口令。
此域中的口令是加密的。当用户登录系统时,系统对输入的口令采取相同的算法,与此域中的内容进行比较。如果此域为空,表明该用户登录时不需要口令。uid指定用户的UID。
用户登录进系统后,系统通过该值,而不是用户名来识别用户。gidGID。如果系统要对相同的一群人赋予相同的权利,则使用该值。comment就是注释信息。
1:/etc/passwd 是系统识别用户的一个文件
当我们以root这个账号登录时,系统首先会查阅 /etc/passwd 文件,看是否有root这个账号,然后确定root的UID,通过UID 来确认用户和身份,如果存在则读取/etc/shadow 影
子文件中所对应的beinan的密码;如果密码核实无误则登录系统,读取用户的配置文件;
2:/etc/passwd 的内容理解:
root:x:0:0:root:/root:/bin/bash
用户名:口令:UID:GID:用户名全称:用户的家目录:所用的SHELL的类型
3:关于UID的理解
UID 是确认用户权限的标识,用户登录系统所处的角色是通过UID 来实现的,而非用户名
由此可以看出helloer用户组包括 helloer用户;所以我们查看一个用户组所拥有的用户,可以通过对比/etc/passwd和/etc/group来得到;
Gpasswd –a username groupname 把某用户加入到某个组中
Gpasswd –d username groupname 把组中的某个用户删除
Smbpasswd –a username 在SMB中加入用户
Smbpasswd –x username 在 SMB中删除用户
一个文件 rwxrwxrwx ,前三个字段是表明文件所有者r可读w可写x可执行.中间的表明文件的所有组,后三个表明其他人. 组是用户的集合,能否操作文件要看文件的权限怎么定义.跟
用户无关, 也就是说一个文件定义了用户A可以操作,不表明包含用户A的组C可以操作.这是两个无关的概念
用户管理,主要的工作就是建立一个合法的用户帐户、设置和管理用户的密码、修改用户帐户的属性以及在必要时删除已经废弃的用户帐号。
1. 增加一个新用户
在Linux系统中,只有root用户才能够创建一个新用户,如下的命令将新建一个登录名user1的用户。
# useradd user1
但是,这个用户还不能够登录,因为还没给它设置初始密码,而没有密码的用户是不能够登录系统的。在默认情况下,将会在/home目录下新建一个与用户名相同的用户主目录。如
果需要另外指定用户主目录的话,那么可以使用如下命令:
# useradd -d /home/xf user1
同时,该用户登录时将获得一个Shell程序:/bin/bash,而假如你不想让这个用户登录,也就可以指定该用户的Shell程序为:/bin/false,这样该用户即使登录,也不能够执行
Linux下的命令:
# useradd -s /bin/false user1
在Linux中,新增一个用户的同时会创建一个新组,这个组与该用户同名,而这个用户就是该组的成员。如果你想让新的用户归属于一个已经存在的组,则可以使用如下命令:
# useradd -g user user1
这样该用户就属于user组的一员了。而如果只是想让其再属于一个组,那么应该使用:
# useradd -G user user1
完成了这一操作后,你还应该使用passwd命令为其设置一个初始密码。
2. 删除一个用户
删除用户,只需使用一个简单的命令“userdel 用户名”即可。不过最好将它留在系统上的文件也删除掉,你可以使用“userdel -r 用户名”来实现这一目的。
3. 修改用户属性
在前面我们看到了在新建一个用户的时候如何指定它的用户主目录,如何指定它的Shell,如何设置它所属的组…等等。在Linux中提供了一个命令来实现:
usermod -g组名 -G 组名 -d 用户主目录 -s 用户Shell
还有一种直接的方法,那就是修改/etc/passwd文件,在这个文件中每个用户占用一行,它的内容为:
用户名:密码:用户ID:组ID:用户全名:用户主目录:用户Shell
不过值得注意的是,密码这一项通常是用一个*号代替的,你是看不到的。
4. 增加一个组
还记得Linux的文件可以为同组的人、非同组的人设置不同的访问权限吗?我们可以根据自己的需要创建用户组:
groupadd 组名
5. 删除一个组
同样的,我们有时会需要删除一个组,它的命令就是groupdel 组名。
6. 修改组成员
如果我们需要将一个用户加入一个组,只需编辑/etc/group文件,将用户名写到组名的后面。例如将newuser用户加入到softdevelop组,只需找到softdevelop这一行:
softdevelop:x:506:user1,user2
然后在后面加上newuser,形成:
softdevelop:x:506:user1,user2,newuser
另外,在Red Hat Linux中还提供一个图形化的用户管理工具:userconf,通过它可以更直接地进行用户管理
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25016/viewspace-1018877/ ,如需转载,请注明出处,否则将追究法律责任。