Linux学习 -- 用户和用户组管理
1 用户配置文件
1.1 用户信息文件 /etc/passwd
查看帮助 man 5 passwd
-- account:password:UID:GID:GECOS:directory:shell
-account 用户名 注意规范
-passwd 密码标志 x表示有密码 具体密码在shadow中
-UID user ID 0:超级用户, 由UID决定,不由用户名决定
1-499:系统用户(伪用户),不能登录,不能删,由系统服务或命令调用
500-65535:普通用户
-GID group ID 初始组ID 用户创建时产生的组,每个用户只能有一个初始组,不建议更改,具体属于哪个组看/etc/group
附加组:一个用户还可以加入多个其他的用户组
-GECOS 用户说明
-directory 用户家目录 超级用户: /root/ 普通用户: /hoshme/用户名/
-shell 登录之后的Shell 就是Linux的命令解释器 标准shell:/bin/bash 之外还有/sbin/nologin 不能登录
1.2 影子文件 /etc/shadow
-1 用户名
-2 加密密码 SHA512散列加密算法 "!!"或"*"表示没有密码,不能登录
-3 密码最后一次修改的日期 Linux的时间戳 1970-1-1后的第n天
-4 两次密码修改的时间间隔
-5 密码有效期
-6 密码修改到期前的警告天数
-7 密码过期后的宽限天数 0或不写:到期立即失效 -1:用不失效
-8 账号失效时间 时间戳表示
时间戳 --> 日期:date -d "1970-01-01 16066 days"
日期 --> 时间戳:echo $(($(date --date="2015/10/13" +%s)/86400+1))
-9 保留字段
1.3.1 组信息文件 /etc/group
-1 组名
-2 组密码标志 具体密码在/etc/gshadow中 不推荐使用
-3 GID 组ID 和 UID类似
-4 组中附加用户 和passwd对照看才能知道初始用户
1.3.2 组密码文件 /etc/gshadow
-1 组名
-2 组密码
-3 组管理员用户名
-4 组中附加用户
2 用户管理相关文件 添加用户时自动建立的
2.1 用户的家目录
$ 普通用户 /home/用户名/ 权限700
# 超级用户 /root/ 权限550
2.2 用户的邮箱
/var/spool/mail/用户名
2.3 用户模板目录
/etc/skel/
3 用户管理命令
useradd [选项] 用户名
-u UID: 手工指定UID
-d 家目录: 手工指定家目录
-c 用户说明: 手工指定用户的说明
-g 组名: 手工指定初始组
-G 组名: 指定用户的附加组 逗号分隔
-s shell: 手工指定用户的登录shell。默认/bin/bash
用户默认值文件 /etc/default/useradd
/etc/login.defs
passwd [选项] [用户名]
只有超级用户才能加[用户名],普通用户直接passwd
-S 查询用户密码的状态 仅限超级用户
-l 锁定用户 实际上是更改shadow中密码位前加了双感叹号
-u 解锁用户
--stdin 使用字符串作为用户的密码
echo "123" | passwd --stdin zoro 可以用户shell编程中,批量添加
usermod 修改已存在用户信息
-u -g -G -c -d
-L lock
-U unlock
chage 修改用户密码状态
-l list
-d shadow 3
-m 4
-M 5
-W 6
-I 7
-E 8
唯一有用的是-d,其他都可以通过修改shadow文件实现
chage -d 0 xxx 结果:xxx一登录就要修改密码
userdel [-r] 用户名
-r 同时删除家目录
id 查看用户ID
su [选项] 用户名 切换用户身份
-: 连带用户的环境变量一起切换 - 注意不要省!!!
-c:仅执行一次,而不切换用户身份 eg. $su - root -c "useradd user3"
4 用户组管理命令
groupadd [选项] 组名
-g GID
groupmod [选项] 组名 不如删了重建
-g GID
-n 新组名
groupdel 组名
组里若有初始用户,则不能删除组
附加用户不影响
gpasswd 选项 组名
-a 用户加入组
-d 用户从组中删除
Linux学习 -- 用户和用户组管理的更多相关文章
- Linux命令——用户和用户组管理
Linux命令--用户和用户组管理 命令groupadd 作用:新增组 格式:groupadd [-g GID] groupname 参数:-g,指定GID,一般从500开始 说明:一般不必加-g参数 ...
- 2019/12/11学习内容摘要(Linux系统用户与用户组管理①)
一,认识/etc/passwd和/etc/shadow 1. /etc/passwd :文件中保存系统中所有的用户和用户的主要信息. 在命令行输入 cat /etc/passwd | head ( ...
- Linux 学习笔记04丨Linux的用户和用户组管理
Chapter 3. 用户和用户组管理 由于Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以该账号身份进入系统. 3.0 用户与 ...
- linux之用户和用户组管理详解
#############用户和用户组管理###################linux只认识UID和GID #可在/etc/passwd 和/etc/group中找到 ##/etc/passwd ...
- linux系统用户以及用户组管理
本系列的博客来自于:http://www.92csz.com/study/linux/ 在此,感谢原作者提供的入门知识 这个系列的博客的目的在于将比较常用的liunx命令从作者的文章中摘录下来,供自己 ...
- Linux 操作系统的用户和用户组管理
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入 系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...
- linux入门教程(七) linux系统用户以及用户组管理
关于这部分内容,笔者在日常的linux系统管理工作中用到的并不多,但这并不代表该内容不重要.毕竟linux系统是一个多用户的系统,每个账号都干什么用,你必须了如指掌.因为这涉及到一个安全的问题. [认 ...
- Linux的用户和用户组管理
Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并控 ...
- (转)Linux的用户和用户组管理
原文 Linux是个多用户多任务的分时操作系统,所有一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面能帮助系统管理员对使用系统的用户进行跟踪,并 ...
随机推荐
- Sharepoint 的定制 - 代码附加内容编辑器
//来源:http://www.cnblogs.com/codingcow/articles/69143.html Sharepoint是一种非常新而且很有用的技术. 现在微软把基本的功能集成到了Wi ...
- io外挂
c++里最快的io方式是什么呢? 详见这里. 同时给出一个比较常用的方式,就是用fread.然后自己解析文本,而不是用cin或者scanf,见这里: //fast io test #include & ...
- yali项目的slider
// 调用 var s41 = new slider({ target : '#slider411', titleActiveClass : 'j-active', itemActiveClass : ...
- Core Animation中的组动画
实际开发中一个物体的运动往往是复合运动,单一属性的运动情况比较少,但恰恰属性动画每次进行动画设置时一次只能设置一个属性进行动画控制(不管是 基础动画还是关键帧动画都是如此),这样一来要做一个复合运动的 ...
- redhat 安装hadoop1.2.1伪分布式
完整安装过程参考:http://www.cnblogs.com/shishanyuan/p/4147580.html 一.环境准备 1.安装linux.jdk 2.下载hadoop2. ...
- Hive基础学习
Hive 学习记录Hive介绍:Hive 是起源于Facebook,使得Hadoop进行SQL查询成为可能,进而使得非程序员也可以进进行对其使用:它是一种数据仓库工具,将结构化的数据文件 映射为一张数 ...
- C# 16位的GUDI
引用: http://www.cnblogs.com/lcwzj/archive/2009/04/16/1436992.html 当我们想要获得一个唯一的key的时候,通常会想到GUID.这个key ...
- 三层交换机配置说明(华为S5700设置三个网段互通)
1.配置Switch # 创建VLAN <HUAWEI> system-view[HUAWEI] sysname Switch[Switch] vlan batch 10 20 30# 配 ...
- sql 在将 nvarchar 值 转换成数据类型 int 时失败。
假设有存储过程:proc_test2 create proc proc_test2 @Id int begin as declare @sql varchar(max) @sql = 'select ...
- 深入浅出requireJS-1
我们都知道,虽然我们可以通过原型和继承来使javascript面向对象.但是,当js代码和逻辑过多时,代码的维护和扩展会变的很不方便.这时,nodejs做的非常好,但是在浏览器端模块化的js编程一直都 ...