博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux用户管理
阅读量:7010 次
发布时间:2019-06-28

本文共 3000 字,大约阅读时间需要 10 分钟。

Linux作为多用户操作系统, 用户拥有不同的根目录, 文件访问权限, 命令权限, bash.

Linux使用用户组来管理用户, 每个用户拥有唯一的uid, 每一个用户组均有唯一的gid.

Linux有且只有一个超级用户root, root拥有系统所有权限, 它的uid为0.

contents:

用户配置文件

passwd 和 shadow

/etc/passwd/etc/shadow是管理用户两个重要配置文件./etc/passwd存储用户的基本信息, /etc/shadow的主要作用是存储用户密码的hash值.

因为许多程序需要利用/etc/passwd将uid转换为用户名, 所以通常/etc/passwd是所有用户可读的.

但是, 这样处理即使密码进行了hash操作仍有被试出的危险.而/etc/shadow只有拥有权限的管理员才可以阅读.

-rw-r--r--  1 root     root    /etc/passwd-rw-r-----  1 root     shadow  /etc/shadow

/etc/passwd每行是一个用户的记录, 字段之间使用:分隔:

username:password:uid:gid:comment:home:bash

例如root用户:

root:x:0:0:root:/root:/bin/bash

可以看到password字段为x, password的hash值实际存放在/etc/shadow中.

/etc/shadow中同样是一行对应一个用户的记录:

用户名:加密口令:上次修改时间:两次修改口令之间的最小天数:口令有效天数:口令失效前警告天数:口令失效后账户宽限天数:账户失效时间:保留字段

所有时间均采用unix时间戳表示, 操作系统不仅可以限制两次修改口令之间的最小天数, 也可以限定口令有效的天数.

口令失效前用户必须重新设置口令才能继续登录, 在失效前指定天数系统会向用户发出警告.

宽限天数则是在口令失效后用户仍可以使用该密码登录, 不过登录后必须先重新设置密码才能继续工作.

若宽限天数之后用户仍未重新设置口令那么需要联系管理员了.

实际上很多域并未指定:

root:*:16951:0:99999:7:::

group 与 gshadow

/etc/group存储了用户组的基本信息, 而/etc/gshadow则是存储用户组密码的配置文件.

/etc/group中每一行是一个用户组的记录:

groupname:password:gid:users

password字段通常显示x, 密码的hash值被放入gshadow中, 这个密码通常是为用户组管理员准备的.

users字段中将会列出属于该用户组所有用户的用户名.

用户和用户组之间是多对多的关系, 使用groups指令可以查看当前用户所属的用户组.在/etc/passwd中每个用户拥有一个gid字段指定了它的初始用户组, 用户登录后即可获得初始用户组权限.

当用户想要使用自己所属的其它用户组的权限时, 可以使用newgrp [GRP]命令进行切换.

用户管理命令

新建用户useradd

useradd [option] username

选项:

  • -c 添加comment

  • -d 指定home目录

  • -g 指定初始用户组

  • -G 指定用户组

  • -s 指定用户使用的shell

  • -u 指定uid

示例:

useradd -s /bin/sh -g group –G adm,root gem

修改用户usermod

usermod [option] username

选项含义基本与useradd相同, 用于修改已存在用户的属性

删除用户userdel

userdel [option] username

选项:

  • -f 强制删除, 即使用户已经登录也会被删除

  • -r 同时删除用户的主目录

管理口令passwd

passwd [option] [username]

选项:

  • -l 锁定账号, 禁止登录

  • -u 解锁账号

  • -d 删除账号口令

  • -f 强制用户下次登录时修改口令

在不使用选项时表示修改指定用户的口令, username缺省时为当前用户:

$ passwdOld password:New password:Re-enter new password:

root可以强制修改任意用户的口令:

# password user1New password:Re-enter new password:

用户组管理命令

新建用户组groupadd

groupadd [option] groupname

选项:

  • -g 指定gid

  • -o-g一同使用,表示gid可以与已有gid相同

删除用户组groupdel

groupdel groupname

修改用户组groupmod

groupmod [option] groupname

  • -g 重设gid

  • -o 允许gid重复

  • -n 重设组名称

查看用户所属的组groups

groups [username]

默认为当前用户

切换用户组newgrp

newgrp [group]

将当前用户切换到指定用户组, 只有在用户已经是组成员的情况下才会生效.

权限管理命令

切换用户su

su [option] [username]

su指令用于切换用户身份, 在未指定username时指定为root.

使用su命令切换用户需要验证目标用户的口令.

选项:

  • -c command 以新身份执行command指令, 执行完毕返回原身份

  • -l 登录交互终端

  • -s 指定shell

以另外用户的身份执行sudo

su指令将获得全部root权限, 这在多管理员系统上非常不便, sudo指令则授权某些用户可以用root的身份执行命令。

/etc/sudoers文件指定了可以使用sudo指令的用户, 使用visudo命令可以编辑该文件。

sudo指令是当前用户以root的身份执行命令, 系统需要检验执行者是否是sudoer本人.所以需要验证当前用户密码而非root密码.

sudo命令拥有一个有效期, 在验证成功后开始计时. 在超时之前执行者可以一直使用sudo执行命令无需反复验证.

sudo [option] command

选项:

  • -v 重置sudo失效计时, 若sudo指令15min后失效, 执行此命令后重置倒计时为15min.

  • -k 下次执行sudo时强制进行身份验证

  • -u 以指定的用户身份执行命令, 默认为root

  • -l 列出当前用户的权限, 该权限由/etc/sudoer文件配置

  • -b 在后台执行指令

  • -s 以子进程形式打开新用户的终端, sudo -s则打开了root的终端

sudo -s指令以子进程的形式打开root终端, 使用exit命令可以退出当前进程, 即退出root终端.

可以执行su指令的sudoer可以使用sudo su命令将自己切换为root, 拥有修改/etc/sudoer权限的用户则可以进行用户权限管理.

拥有ALL权限(或可以使自己获得ALL权限)的sudoer的访问权限与root基本无异, 很多发行版使用随机root密码, 并给用户ALL权限以代替root进行管理.

转载地址:http://sqttl.baihongyu.com/

你可能感兴趣的文章
自定义adapter实现listview双列显示
查看>>
MyBatis——实现关联表查询
查看>>
struts2的MVC模式
查看>>
cocos2d-x JS 复选按钮checkBox的单选与多选
查看>>
表格花式效果
查看>>
Thrift 基于zookeeper改造模式
查看>>
rsync与cwRsync
查看>>
图像的形态学处理
查看>>
Elasticsearch5.5 部署Head插件
查看>>
VC++使用IMAPI调用Outlook邮箱客户端和Foxmail邮箱客户端遇到的问题
查看>>
Python字符编码以及循环机制介绍
查看>>
ON_COMMAND ON_MESSAGE ON_NOTIFY区别与联系
查看>>
远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo、SpringClound对比...
查看>>
golang学习笔记9 beego nginx 部署 nginx 反向代理 golang web
查看>>
接口测试基础
查看>>
spring boot @Transactional事物处理
查看>>
重载、重写、符号冲突、扩展
查看>>
logstash之filter处理中括号包围的内容
查看>>
彩票的思考
查看>>
转帖:解决System.Data.OracleClient requires Oracle client software version 8.1.7 or greater
查看>>