Linux 用户与用户组
1 Linux 用户与组
Linux是一个多用户多任务操作系统。多用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响。
1.1 Linux下用户的角色分类
Linux用户的角色分为3类:
超级用户:拥有系统最高权限,默认是root。
普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限。如www用户、ftp用户。
虚拟用户:也称为“伪”用户。该类系统用户不能登录系统,例:系统默认的bin、adm、nobody用户等。一般运行的Web服务,默认就是使用nobody用户的,但是nobody用户是不能登录系统的。
1.2 用户和组的概念
用户组
每个用户在都有一个初始用户组,表现为/etc/passwd的第4栏的GID。
基本组、附加组
组信息的文件存储在/etc/group与/etc/gshadow中。
以用户的角度来说,组的类型:
私有组:基本组
额外组:
计算机使用者有两个属性,用户名和用户id(UID)
管理员:root,UID和GID都固定为 0。
系统用户:供系统使用。用于维持系统或某个程序的正常运行,一般不允许登录,1~499的UID、GID默认保留给程序用户使用。
普通用户:一般只在用户自己的宿主目录中有完全权限,UID、GID号在500~65535之间。
UID和GID:UID(user identity),GID(group identify)
1.2.1 用户与组的关系
用户与组的对应关系有一对一,一对多,多对一,多对多。
1.3 用户和组相关配置文件
Linux的用户信息默认放在本地文本文件中。
跟用户和组相关的文件:
/etc/passwd: 用户的属性信息(不仅仅是密码信息);
/etc/shadow: 影子口令。只需要给管理员访问。
/etc/group: 组的属性信息;
/etc/gshadow: 组的密码;
1.3.1 /etc/passwd
该目录存储的是操作系统用户信息,该文件为所有用户可见。
该文件存放的是用户的信息,解释如下:
文件内容格式如下:
用户名 : 密码占位符 : UID : GID : 注释信息 : 家目录 : 默认shell
密码占位符通常表示为x。表示密码不存于本文件中,而是保存在shadow文件中。
例如:为系统添加一个用户名称叫做hadoop。并查看passwd文件。
1.3.2 /etc/shadow
用户影子文件,用于存储用户密码。该文件只有root用户拥有读权限。
文件内容格式如下:
登录名 : 加密的密码串 : 最近一次修改密码的时间 : 密码最短使用期限 : 密码最长使用期限 : 密码到期警告天数 : 帐号的非活动天数 : 帐号过期期限 : 预留段
1.3.3 /etc/group
用户组配置文件,用户组的所有信息都存放与此文件中。
文件内容格式如下:
组名 : 密码占位符 : GID : 以此组为额外组的用户列表(用户间用逗号分隔)
1.3.4 /etc/gshadow文件的格式
组名 : 密码栏 : 用户组管理员的帐号 : 用户组的所属帐号(与/etc/group相同)
2 用户管理命令
2.1 用户基本信息
2.1.1 显示用户id信息
id 用户名
-u 只显示用户uid
-g 只显示用户gid
-n 只显示名
-un, -gn 显示用户名,显示组名称。
2.1.2 finger命令
查找并显示用户信息。
2.2 用户组常用命令
2.2.1 groupadd命令 创建组
groupadd 组名称
常用参数:
-g GID:创建组的时候为其指定GID;该GID号必须唯一。不能与已存在的重复。
-o:一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。
-r:创建系统组;
2.2.2 groupdel命令 删除组
若用户组中仍包括某些用户,则必须先删除掉这些用户,然后才能删除用户组。
例:删除linuxfans用户组。
groupdel linuxfans
2.2.3 newgrp命令 切换用户的所在主用户组
若一个用户同时属于多个用户组,那么用户可以在用户组之间切换,以便有其他用户组的权限。newgrp命令主要用于在多个用户组之间进行切换。
newgrp GROUP: 临时设定指定的组为自己的基本组;
例:通过如下实例演示newgrp的用法。
2.3 用户常用命令
2.3.1 useradd命令 添加用户(仅仅管理员可用)
useradd USERNAME
useradd的一些选项,通过选项可以定制用户。创建用户时为其创建同名组。称为用户的私有组,一般而言只为用户一个人而使用。
定制用户属性:
-u UID, 有效范围0-65535;
-g GID, 有效范围已有的GID;
-G GID, 有效范围为已有的GID;可以有多个,用逗号分隔;
-c COMMENT
-d /path/to/somewhere
-s /path/to/shell_command
-r: 创建系统用户, ID号范围为1-499之间的用户;系统用户的家目录不会被真正创建;
-M: 不为用户创建家目录;
-m: 必须为用户创建家目录;
useradd命令添加一个用户,用户信息的四个文件都会有改变。添加用户后,passwd文件会多出一条数据,其规则如下:
UID:已有最大UID+1
GID:/etc/group中已有最大GID+1,如果没有给用户指定基本组,且其UID相同的GID号未被占用,则GID同UID;
注释信息:空
家目录:/home/USERNAME
shell:/bin/bash
2.3.2 usermod命令 修改用户属性
# usermod [-cdegGlsuLU] username
常用选项:
-u UID
-g GID
-a -G GID: -G修改额外组时会覆盖原有的额外组,同时使用-a选项则能保留原有的额外组;(append,追加)
-c COMMENT
-s /PATH/TO/SHELL
-l NEW_NAME: 改用户的登录名称;
-m -d /path/to/somewhere:-d只修改家目录指向,同时使用-m选项则可实现将原来家目录移动为新的家目录;
2.3.3 userdel命令 删除用户
userdel [options] USERNAME
常用选项:
-r:一并删除用户的家目录。若无该选项,则删除用户,但不删除家目录。
2.3.4 usermod命令 修改用户帐号
usermod可用来修改用户帐号的各项设定。该命令不允许改变正在线上的使用者帐号名称。
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s<shell> 修改用户登入后所使用的shell。
-u<uid> 修改用户ID。
-U 解除密码锁定。
例:
1、将 newuser2 添加到组 staff 中
# usermod -G staff newuser2
2、修改 newuser 的用户名为 newuser1
# usermod -l newuser1 newuser
3、锁定账号 newuser1
# usermod -L newuser1
4、解除对 newuser1 的锁定
# usermod -U newuser1
3 密码管理
3.1 passwd密码 修改用户密码
修改当前用户的密码;
passwd USERNAME
常用选项:
-l: 锁定用户帐号。不允许指定用户登录。
-u: 解锁。
-e
-n: 密码最短使用天数;
-x:最长使用天数;
-w: 警告天数;
-i: 非活动时长;
3.2 密钥属性的修改
chage
-d: 修改密码的最近一次修改时间
-m, --mindays MIN_DAYS:最短使用期限;
-M, --maxdays MAX_DAYS:最长使用期限;
-W, --warndays WARN_DAYS:警告天数;
-I, --inactive INACTIVE:非活动天数;
-E, --expiredate EXPIRE_DATE:过期时间;
3.3 修改用户组的密码
gpasswd: 为组设定密码;
例:
范例一:完全参考默认值创建一个用户,名称为 vbird1
[root@www ~]# useradd vbird1
[root@www ~]# ll -d /home/vbird1
drwx------ 4 vbird1 vbird1 4096 Feb 25 09:38 /home/vbird1
# 默认会创建用户家目录,且权限为 700 !这是重点!
[root@www ~]# grep vbird1 /etc/passwd /etc/shadow /etc/group
/etc/passwd:vbird1:x:504:505::/home/vbird1:/bin/bash
/etc/shadow:vbird1:!!:14300:0:99999:7:::
/etc/group:vbird1:x:505: <==默认会创建一个与账号一模一样的群组名
1、创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003),附加组为linux;
# groupadd linux
# groupadd -g 3003 distro
# useradd -u 2002 -g distro -G linux mandriva
2、创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh;
# useradd -c "Fedora Community" -s /bin/tcsh fedora
3、修改mandriva的ID号为4004,基本组为linux,附加组为distro和fedora;
# usermod -u 4004 -g linux -G distro,fedora mandriva
4、给fedora加密码,并设定其密码最短使用期限为2天,最长为50天;
# passwd fedora
# chage -m 2 -M 50 fedora
5、将mandriva的默认shell改为/bin/bash;
# usermod -s /bin/ash mandriva
4 转换用户
4.1 su命令 转换用户
su (switch user)命令 切换当前用户
su USERNAME
su -l USERNAME
su - USERNAME
管理员su到普通用户,不需要密码;反之,不成;
4.2 退出当前用户
exit 该命令会推出当前用户,转换为之前登录的用户。
Linux 用户与用户组的更多相关文章
- Linux 用户和用户组管理
Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...
- Linux用户与用户组,UID及GID
以下列出文章: Linux系统下如果查看用户的UID和GID:http://blog.csdn.net/ahangliu/article/details/7567444 Linux的用户和用户组管理: ...
- linux用户及用户组操作
Linux用户.用户组权限管理详解 Linux用户管理三个重要文件详解: Linux登陆需要用户名.密码./etc/passwd 文件保存用户名.登录Linux时,Linux 先查找 /etc/pas ...
- 八、Linux 用户和用户组管理
Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...
- linux用户和用户组管理详解
Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助 ...
- Linux用户与用户组
Linux用户与用户组 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. 用户的账号一方面可以帮助系统管 ...
- Linux 用户和用户组管理(useradd userdel groupadd groupdel)
Linux 用户和用户组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统. Linux系统用户账户的 ...
- linux 用户、用户组不能是全数字
今天封装命令行,需要创建用户.用户组,遇到下面问题,如图: 当时我和迷茫,为什么明明存在‘1111’这个用户组,但是却提示不存在呢??难道是linux的一个bug??? 接着我又试了几个: 发现规律了 ...
- Linux 用户和用户组操作
[认识/etc/passwd和/etc/shadow] 这两个文件可以说是linux系统中最重要的文件之一.如果没有这两个文件或者这两个文件出问题,则你是无法正常登录linux系统的. /etc/pa ...
随机推荐
- 一个短路求值引起的一个小bug
今天在写一个判断字符串是否回文时因为短路求值问题导致了一个bug,记录如下: 代码如下 bool isPal(char str[],int len) { int begin=0; int end=le ...
- android调用百度地图API
http://blog.csdn.net/lyq8479/article/details/6384428
- quartz 两次执行问题
最近发现网站(xiayule.net)越写越大,有些东西已经难以维护了,想要添加个功能,都得斟酌半天 项目中有很多可重构的地方,小重构一直进行,大的不敢动,毕竟没有很多时间做测试. 最后,决定精简代码 ...
- ♫【Git】
git - 简易指南 (√) fatal:remote error:You can't push to git://github.com/username/*.git (√) git clone g ...
- MongoDB 权限管理 用户名和密码的操作
在刚安装完毕的时候MongoDB都默认有一个admin数据库,而admin.system.users中将会保存比在其它数据库中设置的用户权限更大的用户信息. 当admin.system.users中 ...
- 【转】蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet Sniffer 抓取数据方法--不错
原文网址:http://blog.csdn.net/mzy202/article/details/32408223 蓝牙4.0BLE cc2540 usb-dongle的 SmartRF Packet ...
- C/S结构与B/S结构的特点分析
C/S结构与B/S结构的特点分析 为了区别于传统的C/S模式,才特意将其称为B/S模式.认识到这些结构的特征,对于系统的选型而言是很关键的. 1.系统的性能 在系统的性能方面,B/S占有优势的是其异地 ...
- OpenSource
SugarCRM 客户关系管理系统(CRM).SugarCRM开源版是一款完全开放源代码的商业开源软件 OPENFILER 基于浏览器的免费网络存储管理实用程序,可以在单一框架中提供基于文件的网络连接 ...
- 详解集群内Session高可用的实现原理
在这个互联网高度发达的时代,许多应用的用户动辄成百上千万,甚至上亿.为了支持海量用户的访问,应用服务器集群这种水平扩展的方式是最常用的.这种情形下,就会涉及到许多单机环境下完全不需要考虑的问题,这其中 ...
- [置顶] Java启动命令大观
Java启动命令是所有java应用程序的入口,通过它来启动Java运行时环境,并加载相关的class.不过由于IDE的盛行,我们Java程序员中的大多数的并不是非常的了解Java启动命令.本文希望做一 ...