生命在于学习——Linux学习日记(四)用户管理

一、用户和用户组操作命令

1、ID

在这里插入图片描述

2、Finger

finger命令是linux下的一个系统管理命令,具体命令的语法格式为finger[参数],它主要有一个功能,finger命令能够去寻找并且显示指定账号的用户有关信息,以及本地与远程主机的用户也都可以,账号名称是没有大小写的差别的。

3、Pwck

检查/etc/passwd 配置文件内的信息与实际主文件夹是否存在,还可比较/etc/passwd 和/etc/shadow 的信
息是否一致,另外如果/etc/passwd 中的数据字段错误也会提示。

4、Grpck

使用grpck命令可以检查组群信息的完整性。它检查/etc/group和/etc/gshadow文件中具有正确格式并包含有效数据的所有条目。

5、Groups

主要用于打印指定用户所在组的名称

6、newgrp

Linux newgrp 命令用于登入另一个群组。 newgrp 指令类似 login 指令,当它是以相同的帐号,另一个群组名称,再次登入系统。

7、useradd

useradd命令用于建立用户帐号。如果在没有-D选项的情况下调用,useradd命令将使用命令行上指定的值加上系统中的默认值创建一个新的用户帐户。

8、usermod

usermod 不仅能改用户的 SHELL 类型,所归属的用户组,也能改用户密码的有效期,还能改登录名。usermod 如此看来就是能做到用户帐号大转移;比如我把用户 A 改为新用户 B;

usermod [-u uid [-o]] [-g group] [-G group,...]
[-d 主目录 [-m]] [-s shell] [-c 注释] [-l 新名称]
[-f 失效日] [-e 过期日] [-p 密码] [-L|-U] 用户名
usermod 命令会参照你命令列上指定的部份修改系统帐号档。下列为 usermod 可选用的参数。
-c comment更新用户帐号 password 档中的注解栏,一般是使用 chfn(1)来修改。
-d home_dir更新用户新的登入目录。如果给定-m 选项,用户旧目录会搬到新的目录去,如旧目录不存在则建个新的。
-e expire_date 加上用户帐号停止日期。日期格式为 MM/DD/YY.
-f inactive_days 帐号过期几日后永久停权。当值为 0 时帐号则立刻被停权。而当值为-1 时则关闭此功能。预设值为-1。
-g initial_group 更新用户新的起始登入用户组。用户组名须已存在。用户组 ID 必须参照既有的的用户组。用户组 ID 预设值为 1。
-G group,[...] 定义用户为一堆 groups 的成员。每个用户组使用","区格开来,不可以夹杂空白字元。用户组名同-g 选项的
限制。如果用户现在的用户组不再此列,则将用户由该用户组中移除。
-l login_name 变更用户 login 时的名称为 login_name。其它不变。特别是,用户目录名应该也会跟着更动成新的登入名。
-s shell 指定新登入 shell。如此栏留白,系统将选用系统预设 shell。
-u uid 用户 ID 值。必须为唯一的 ID 值,除非用-o 选项。数字不可为负值。预设为最小不得小于/etc/login.defs 中定义的UID_MIN 值。0 到 UID_MIN 值之间是传统上保留给系统帐号使用。用户目录树下所有的档案目录其 userID 会自动改变。放在用户目录外的档案则要自行手动更动。
警告:usermod 不允许你改变正在线上的用户帐号名称。当 usermod 用来改变 userID,必须确认这名 user 没在电脑上执行任何程序。你需手动更改用户的 crontab 档。也需手动更改用户的 at 工作档。采用 NISserver 须在 server 上更动相关的 NIS 设定。

usermod最好不要用它来改用户的密码,因为他在/etc/shadow中显示的是明口令,修改用户的口令最好用passwd。

9、userdel

userdel 很简单,只有一个参数可选 -r ;如果加参数-r ,表示在删除用户的同时,一并把用户的家目录及本地邮件存储的目录或文件也一同删除。
请不要轻易用-r参数,他会删除用户的同时删除用户所有的文件和目录。

10、Groupadd

groupadd是添加用户组的命令 linux命令:groupadd详解 用法:groupadd [选项]组 选项: -f, --force 如果组已经存在则成功退出

11、groupdel

groupdel命令用于删除群组。 需要从系统上删除群组时,可用groupdel(group delete)指令来完成这项工作。倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

12、passwd

passwd 作为普通用户和超级权限用户都可以运行,但作为普通用户只能更改自己的用户密码,但前提是没有被 root 用户锁定;如果 root 用户运行 passwd ,可以设置或修改任何用户的密码。
如果passwd命令后不接任何参数或用户名,则表示修改当前用户的密码。

13、chage

chage 用语法格式:

chage [-l] [-m 最小天数] [-M 最大天数] [-W 警告] [-I 失效日] [-E 过期日] [-d 最后日] 用户

前面已经说的好多了,这个只是一笔带过吧,知道有这个命令就行,自己实践实践再说,大体和 psswd 有些参数的用法差不多。

14、id工具

id 工具是用来查询用户信息,比如用户所归属的用户组,UID 和 GID 等;id 用法极为简单;我们举个例子说明一下;

语法格式: id [参数] [用户名]

至于有哪些参数,自己查一下 id --help 或 man id ;如果 id 后面不接任何参数和任何用户,默认显示当前操作用户的用户名、所归属的用户组、UID 和 GID 等。

15、Finger工具:用来查询用户信息,侧重用户家目录,登录shell等。

finger 工具侧重于用户信息的查询;查询的内容包括用户名(也被称为登录名 Login),家目录,用户真实的名字(Name)… …办公地址、办公电话;也包括登录终端、写状态、空闭时间等。
我们最常用 finger 来查询用户家目录、用户真实名、所用 SHELL 类型、以及办公地址和电话,这是以参数 -l 长格式输出的;而修改用户的家目录、真实名字、办公地址及办公电话,我们一般要能过 chfn 命令进行。

16、查询登录主机的用户工具:w、who、users

w、who 和 users 工具,是查询已登录当前主机的用户;另外 finger -s 也同样能查询;侧重点不一样;请自己对比着看。

17、groups用户所归属的用户组查询

groups 用法很简单,就是查询用户所归属哪个或哪些用户组;

语法格式: groups 用户名

二、相关配置文件

/etc/passwd:Linux/UNIX安全的关键文件之一.该文件用于用户登录时校验 用户的口令
/etc/shadow:密码文件存放路径
/etc/gshadow:组用户的密码信息存储在 /etc/gshadow 文件中
/etc/group:组用户信息存储在 /etc/group 文件中

三、Linux用户密码策略

Linux 用户密码的有效期,是否可以修改密码可以通过 login.defs 文件控制.对 login.defs 文件修只影响后续
建立的用户,如果要改变以前建立的用户的有效期等可以使用 chage 命令,Linux 用户密码的复杂度可以通过 pam pam_cracklib module 或 pam_passwdqc module 控制,两者不能同时使用。

/etc/login.defs 密码策略
PASS_MAX_DAYS 99999 #密码的最大有效期, 99999:永久有期
PASS_MIN_DAYS 0 #是否可修改密码,0 可修改,非 0 多少天后可修改
PASS_MIN_LEN 5 #密码最小长度,使用 pam_cracklib module,该参数不再有效
PASS_WARN_AGE 7 #密码失效前多少天在用户登录时通知用户修改密码
pam_cracklib 主要参数说明:
tretry=N:重试多少次后返回密码修改错误
difok=N:新密码必需与旧密码不同的位数
dcredit=N: N >= 0:密码中最多有多少个数字;N < 0 密码中最少有多少个数字.
lcredit=N:小宝字母的个数
ucredit=N 大宝字母的个数
credit=N:特殊字母的个数
minclass=N:密码组成(大/小字母,数字,特殊字符)
pam_passwdqc 主要参数说明:
mix:设置口令字最小长度,默认值是 mix=disabled。
max:设置口令字的最大长度,默认值是 max=40。
passphrase:设置口令短语中单词的最少个数,默认值是 passphrase=3,如果为 0 则禁用口令短语。
atch:设置密码串的常见程序,默认值是 match=4。
similar:设置当我们重设口令时,重新设置的新口令能否与旧口令相似,它可以是 similar=permit 允
许相似或 similar=deny 不允许相似。
random:设置随机生成口令字的默认长度。默认值是 random=42。设为 0 则禁止该功能。
enforce:设置约束范围,enforce=none 表示只警告弱口令字,但不禁止它们使用;enforce=users 将
对系统上的全体非根用户实行这一限制;enforce=everyone 将对包括根用户在内的全体用户实行这
一限制。
non-unix:它告诉这个模块不要使用传统的 getpwnam 函数调用获得用户信息,
retry:设置用户输入口令字时允许重试的次数,默认值是 retry=3

四、ACL权限设置

ACL是Access Control List的缩写,主要用于在提供传统的owner、group、others 的 read、write、execute权限之外进行细部权限设置。

1、启动ACL

(1)让/目录支持 ACL:

#mount –o remount ,acl /
#mount |grep / //查看是否有挂载

(2)开机启动 ACL:

将要启动 ACL 的分区写入/etc/fstab 中:
#vi /etc/fstab
/dev/hda5 / ext3 default,acl 1 2

2、ACL相关命令

Getfacl :取得某个文件/目录的 ACL 权限;
Setfacl :设置某个文件/目录的 ACL 权限;
setfacl [-bkndRLPvh] [{-m|-x} acl_spec] [{-M|-X} acl_file] file …
setfacl --restore=file
描述
setfacl 用来在命令行里设置 ACL。在命令行里,一系列的命令跟随以一系列的文件名。
选项-m 和-x 后边跟以 acl 规则。多条 acl 规则以逗号(,)隔开。选项-M 和-X 用来从文件或标准输入读取
acl 规则。
选项–set 和–set-file 用来设置文件或目录的 acl 规则,先前的设定将被覆盖。
选项-m(–modify)和-M(–modify-file)选项修改文件或目录的 acl 规则。
选项-x(–remove)和-X(–remove-file)选项删除 acl 规则。
当使用-M,-X 选项从文件中读取规则时,setfacl 接受 getfacl 命令输出的格式。每行至少一条规则,以#
开始的行将被视为注释。
当在不支持 ACLs 的文件系统上使用 setfacl 命令时,setfacl 将修改文件权限位。如果 acl 规则并不完全匹
配文件权限位,setfacl 将会修改文件权限位使其尽可能的反应 acl 规则,并会向 standard error 发送错误消息,
以大于 0 的状态返回。
权限
文件的所有者以及有 CAP_FOWNER 的用户进程可以设置一个文件的 acl。(在目前的 linux 系统上,root
用户是唯一有 CAP_FOWNER 能力的用户)
选项
-b,–remove-all
删除所有扩展的 acl 规则,基本的 acl 规则(所有者,群组,其他)将被保留。
-k,–remove-default
删除缺省的 acl 规则。如果没有缺省规则,将不提示。
-n,–no-mask
不要重新计算有效权限。setfacl 默认会重新计算 ACL mask,除非 mask 被明确的制定。
–mask
重新计算有效权限,即使 ACL mask 被明确指定。
-d,–default
设定默认的 acl 规则。
–restore=file
从文件恢复备份的 acl 规则(这些文件可由 getfacl -R 产生)。通过这种机制可以恢复整个目录树的 acl
规则。此参数不能和除–test 以外的任何参数一同执行。
–test
测试模式,不会改变任何文件的 acl 规则,操作后的 acl 规格将被列出。
-R,–recursive
递归的对所有文件及目录进行操作。
-L,–logical
跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录。
-P,–physical
跳过所有符号链接,包括符号链接文件。
–version
输出 setfacl 的版本号并退出。
–help
输出帮助信息。

标识命令行参数结束,其后的所有参数都将被认为是文件名

如果文件名是-,则 setfacl 将从标准输入读取文件名。

五、用户身份切换

1、Su

命令作用
su 的作用是变更为其它使用者的身份,超级用户除外,需要键入该使用者的密码。
使用方式

su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

参数说明
-f , –fast:不必读启动文件(如 csh.cshrc 等),仅用于 csh 或 tcsh 两种 Shell。
-l , –login:加了这个参数之后,就好像是重新登陆一样,大部分环境变量(例如 HOME、SHELL
和 USER 等)都是以该使用者(USER)为主,并且工作目录也会改变。如果没有指定 USER,缺省情况是 root。
-m, -p ,–preserve-environment:执行 su 时不改变环境变数。
-c command:变更账号为 USER 的使用者,并执行指令(command)后再变回原来使用者。
–help 显示说明文件
–version 显示版本资讯
USER:欲变更的使用者账号,
ARG: 传入新的 Shell 参数。
例子
su -c ls root 变更帐号为 root 并在执行 ls 指令后退出变回原使用者。
[user1@centos6 ~]$ su - root -c “head -n 3 /etc/passwd” 对于命令参数要加上引号
su [用户名]
a>在 root 用户下, 输入 su 普通用户. 则切换至普通用户, 从 root 切换到变通用户不需要密码
b>在普通用户下, 输入 su [用户名]
提示 password:
输入用户的 PASSWORD, 则切换至该用户

2、Sudo

/etc/sudoers 谁能作什么的一个列表,Sudo 能用需要在这个文件中定义
#visudo 增加如下,加%代表用户组,ALL=(ALL)表示登录者的来源主机名,最后的 ALL 代表可执行的命令。NOPASSWD 代表不需要密码直接可运行 Sudo,限制多命令一定要写绝对路径,用逗号分开,多行用‘\’,用!代表不能执行
%aixi ALL=(ALL) NOPASSWD: ALL
%aixi ALL=(ALL) NOPASSWD: /bin/ls,/bin/mkdir,/bin/rmdir,
/usr/bin/who,!/usr/bin/passwd root

六、查询用户命令

1、W

可显示开机多久,当前登录的所有用户,平均负载

2、Who

显示当前登录的所有用户

3、Last

显示每个用户最后的登录时间

4、Lastlog

显示每个用户最后的登录时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值