Linux用户管理

Linux系统跟Windows系统一样,可以创建不同的用户,不同的用户组。在不同用户下使用系统具有相应的权限

  1. 创建一个普通用户时,会修改几个文件,拷贝一些初始文件到用户家目录中

修改的文件路径为

/etc/passwd

/etc/shadow

/etc/group

/etc/gshadow

拷贝到用户家目录下的文件为

.bash_logout .bash_profile .bashrc

如果错误的把root用户下的这三个文件删除,再切换回root用户时会不成功,解决办法为:

这三个文件的原始存放路径为/etc/skel/,

只需将其拷贝回root家目录中即可:cp /etc/skel/.bash* .

最后执行命令source .bash_profile解决问题

 

2、/etc/passwd的详细介绍

saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

localhost:x:500:500::/home/oldboy:/bin/bash

cat /etc/passwd截取部分内容

第一列:用户名

第二列:x代表有密码

第三列:UID(每个用户唯一的编号)

第四列:GID(每个组唯一的编号)

第五列:备注(在创建用户时输入useradd -c 用户名 就能指定备注)

第六列:家目录

第七列:指定登陆之后使用的shell解释器shell的作用:把用户的命令解析之后传给内核来执行

执行命令cat /etc/shells查看shell解释器的类别

[root@localhost ~]# cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/bin/dash

/bin/tcsh

/bin/csh

 

3、/etc/shadow的详细介绍

saslauth:!!:17613::::::

postfix:!!:17613::::::

sshd:!!:17613::::::

tcpdump:!!:17613::::::

localhost:$6$k3Vi5V8s$yf1LQdFvK0nX5UvndAqYJe9vOUFHadvK5Og7N3kOLw4ayG.za/Ft2KmU4Uhe1w8ejN1iL.tRBeMyDwdb7qT66.:17624:0:99999:7:::

cat /etc/shadow截取部分内容,可以通过命令man 5 shadow查看说明

第一列:用户名

第二列:加密之后的密码(没有密码时是两个!号)

第三列:上一次密码改变的时间(距离1970年的天数)

第四列:密码最少使用时间,0表示不限制(不能频繁改密码)

第五列:密码最多使用时间(限定改密码的周期)

第六列:密码警告周期(提前提醒密码到期的时间)

第七列:密码禁用周期(密码到期后禁用用户的周期)

第八列:指定密码到期的具体日期

第九列:预留

 

4、创建用户的原理

cat /etc/default/useradd查看默认配置

[root@localhost ~]# cat /etc/default/useradd

# useradd defaults file

GROUP=100

HOME=/home    家目录的基础目录

INACTIVE=-1        密码过期后,账户被彻底禁用之前的天数

EXPIRE=                过期时间

SHELL=/bin/bash    指定默认的shell解释器

SKEL=/etc/skel    指定骨架目录

CREATE_MAIL_SPOOL=yes    是否创建邮箱

 

5、UID的范围

0-100        Linux系统预留

101-499        系统账号(服务)

500-60000    普通用户

 

6、useradd命令

参数及说明Options:

-g    --gid GROUP name or ID of the primary group of the new account

指定用户组 useradd -g 组id b5 或者useradd -g 组名 b5

例子:

useradd -g 814 b5 或者 useradd -g incahome b5

-G    --groups GROUPS list of supplementary groups of the new account

指定多个用户组,useradd -G 多个组名或组id 用户名

例子:

useradd -G test,incahome,a1 b6

-m    --create-home create the user's home directory 创建家目录

-M    --no-create-home do not create the user's home directory 不创建家目录        

例子:

useradd -M -s /sbin/nologin b8

-p    --password PASSWORD encrypted password of the new account

指定固定加密的密码

例子:

useradd -p 'ezNHdD48mHkGw' c1

        生成加密密码的方式openssl passwd 123456

-s        --shell SHELL login shell of the new account

不登录

例子:

useradd -M -s /sbin/nologin b9

-u        --uid UID user ID of the new account

指定用户uid,方便多台机器同步共享文件

例:

[root@localhost ~]# useradd -u 608 web

[root@localhost ~]# id web

uid=608(web) gid=608(web) groups=608(web)

不常用的参数

-b     指定基础目录

-c     指定备注信息

-d     指定用户的家目录

-e    过期时间

-f     禁用时间

 

7、chage命令

该命令用于密码时效管理。它可以修改账号和密码的有效期

[root@localhost ~]# chage

用法:chage [选项] 登录

选项:

-d, --lastday 最近日期     将最近一次密码设置时间设为"最近日期"

-E, --expiredate 过期日期     将帐户过期时间设为"过期日期"

-h, --help     显示此帮助信息并推出

-I, --inactive INACITVE     过期 INACTIVE 天数后,设定密码为失效状态

-l, --list     显示帐户年龄信息

-m, --mindays 最小天数 将两次改变密码之间相距的最小天数设为"最小天数"

-M, --maxdays 最大天数 将两次改变密码之间相距的最大天数设为"最大天数"

-R, --root CHROOT_DIR chroot 到的目录

-W, --warndays 警告天数 将过期警告天数设为"警告天数"

 

8、其他相关命令

usermod    修改用户参数

groups        查看用户所在的组

newgrp        切换用户组,如果切换到其他用户的用户组,需要输入group组密码

gpasswd     设置组密码

 

博主原创文章,转载请务必注明出处

最新文章

  1. HDU 5894 hannnnah_j’s Biological Test (组合数学) -2016 ICPC沈阳赛区网络赛
  2. [ACM_动态规划] 轮廓线动态规划——铺放骨牌(状态压缩1)
  3. la----3695 City Game(最大子矩阵)
  4. (转)mysql各个主要版本之间的差异
  5. 返回顶部(解决IE6固定定位)
  6. Metaspace 之一--java8 去掉 perm 用 Metaspace 来替代
  7. IBM
  8. Nginx高性能服务器安装、配置、运维 (2) —— Nginx安装
  9. css实现红十字会图标
  10. 内网服务器启动报错UNEXPECTED INCONSISTENCY解决方法
  11. svn怎么切换用户
  12. usaco training 4.1.3 fence6 题解
  13. javascript 二维(多维)数组的复制问题
  14. Python笔记·第一章—— Python基础(一)
  15. Unity3d KeyCode 键盘各种键值详情
  16. Sublime Text3中 less 自动编译成 css 的方法
  17. SVN服务器搭建实录
  18. 【第七篇】SAP ABAP7.5x新语法之F4增强
  19. 数据库cmd窗口登录
  20. 03、 forms组件

热门文章

  1. [问题解决]NotImplementedError 错误原因:子类没有实现父类要求一定要实现的接口
  2. OgnlContext 源码
  3. 玲珑杯”ACM比赛 Round #15
  4. mac os 80端口的间接使用
  5. linux系统初始化——sysinit文件写法详解
  6. bootstrap之常见组件应用1
  7. python 小练习1
  8. mysql source、mysqldump 导入导出数据(转)
  9. Perm 排列计数(bzoj 2111)
  10. event.srcElement就是指向触发事件的元素,他是什么就有什么的属性