用户管理、文件查找

Linux 是一个可以实现多用户登陆的操作系统,允许多个用户同时登陆到系统使用资源。系统根据账户来区分每个用户的文件、进程、任务,给每个用户提供特定的工作环境。
对用户组的管理主要包括:添加、修改、删除以及配置访问系统的资源。

1. Linux 用户组基本概念

用户组 group,就是具有相同特征的用户的集合体。
1.1查看当前登录的用户信息:

[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root)
在这里插入图片描述

1.2查看文件的 owner:

[root@localhost ~]# ll /home/
在这里插入图片描述

1.3查看运行进程的 username:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME
COMMAND
root 1 0.0 0.0 19360 1536 ? Ss 13:29 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S 13:29 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 13:29 0:00 [migration/0]
root 4 0.0 0.0 0 0 ? S 13:29 0:00 [ksoftirqd/0]

1.4和用户组相关的一些文件:

①用户账号文件 /etc/passwd root❌0:0:root:/root:/bin/bash
在这里插入图片描述
②用户密码文件 /etc/shadow
在这里插入图片描述
③用户组账号文件 /etc/group root❌0:
④用户组密码文件 /etc/gshadow

2.Linux 用户组分类

2.1 用户分类

Linux 系统中存在三种用户:root 用户、系统用户(也称之为伪用户)、普通用户
系统约定: RHEL7
uid: 0 特权用户
uid:1-999 为系统用户
uid:1000+为本地用户

2.2 组分类

基本组(私有组)
附加组(公有组)
系统组
根据账户功能,用户组可以分为:
超级用户组:root gid 为 0
系统用户组:gid 1-999
本地用户组:gid 1000+

3. Linux 用户组管理

3.1用户组:

[root@localhost ~]# groupadd hr
[root@localhost ~]# groupadd market
[root@localhost ~]# groupadd net01 -g 2000//添加组 net01,并指定 gid 2000
[root@localhost ~]# grep ‘net01’ /etc/group//查看/etc/group 中组 net01 信息
[root@localhost ~]# groupdel net01 //删除组 net01

3.2用户:
①创建用户 未指定选项

[root@localhost ~]# useradd user01
. 未指定该用户的主组 默认和用户同名
. 未指定该用户的附加组 默认不添加附加组
. 未指定用户的 HOME 默认 /home/username
. 未指定用户的 SHELL 默认 /bin/bash
. 未指定用户的 UID… 默认递增

 如果创建一个用户时,未指定任何选项,系统会创建一个和用户名相同的组作为用户的 Primary Group.

②创建用户 指定选项

[root@localhost ~]# useradd user02 -u 503//创建用户 usr02,指定 uid
在这里插入图片描述
查看是否成功:
在这里插入图片描述
[root@localhost ~]# useradd user03 -d /aaa//创建用户user03 指定家目录
在这里插入图片描述
查看是否成功:
在这里插入图片描述
[root@localhost ~]# useradd user05 -s /sbin/nologin //创建用户并指定 shell
在这里插入图片描述
在这里插入图片描述
[root@localhost ~]# useradd user07 -G hr//创建用户,指定附加组
在这里插入图片描述
查看:more/etc/group
在这里插入图片描述
[root@localhost ~]# useradd user10 -u 4000 -s/sbin/nologin//创建用户,非登录用户
在这里插入图片描述
在这里插入图片描述
[root@localhost ~]# useradd user10 -c “test” //创建用户,添加注释信息
在这里插入图片描述
在这里插入图片描述

③删除用户

[root@localhost ~]# userdel user10//删除用户 user10,但不删除用户家目录
[root@localhost ~]# userdel -r user2 //删除用户 user2,同时删除用户家目录

④用户密码

[root@localhost ~]# passwd alice
在这里插入图片描述

3.3组成员管理:只针对已存在的用户

在这里插入图片描述
查看/etc/passwd 里的用户,并将user的名字改为user1
在这里插入图片描述
查看是否修改成功:
在这里插入图片描述
为user2添加备注信息,并修改登录的shell为/sbin/nologin:
在这里插入图片描述
在这里插入图片描述

3.给普通用户提权

sudo 命令用于给普通用户提供额外的权限来完成原本 root 管理员才能完成的任务,格式为“sudo [参数] 命令名称”。
在这里插入图片描述
在这里插入图片描述

4.文件查找(which、whereis、find)

4.1which:查找可执行文件的路径,通过PATH环境变量到该路径内查找可执行文件

选项或参数:
-a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指 令名称
①搜寻 ifconfig 这个指令的完整文件名
在这里插入图片描述
②用 which 查找 which
在这里插入图片描述

4.2whereis:用来查询文件的二进制代码、源文件、man手册位置等

这里是引用
whereis passwd(将和passwd相关的所有文件都查找出来)
whereis -b passwd(只将二进制文件查找出来)
在这里插入图片描述
用whereis找出 ifconfig 这个档名
在这里插入图片描述

4.3find:实际搜索硬盘查询文件名称

语法:[root@redhat ~]# find 路径 参数
时间查找参数:
-atime n :将 n24 小时内存取过的的文件列出来
-ctime n :将 n
24 小时内改变、新增的文件或者目录列出来
-mtime n :将 n*24 小时内修改过的文件或者目录列出来
-newer file :把比 file 还要新的文件列出来
名称查找参数:
-gid n :寻找群组 ID 为 n 的文件
-group name :寻找群组名称为 name 的文件
-uid n :寻找拥有者 ID 为 n 的文件
-user name :寻找用户者名称为 name 的文件
-nouser :寻找文件的拥有者不存在 /etc/passwd 的人!
-nogroup :寻找文件的拥有群组不存在于 /etc/group 的文件!
①找出档名为 passwd 这个档案
在这里插入图片描述
②找出/etc/目录下所有脚本文件,即后缀为 sh
在这里插入图片描述
③找出/etc/目录下所有大于 1MB 癿档案
在这里插入图片描述
④查找所有的 jpg 文件并压缩
find / -name *.jpg -type f -print | xargs tar -cvzfimages.tar.gz
find / -name *.jpg -type f -exec tar -cvzf images.tar.gz {} ;

练习:

1、查找/var 目录下属主为 root,且属组为 mail 的所有文件或目录;
~]# find /var -user root -a -group mail -ls
2、查找/usr 目录下不属于 root, bin 或 hadoop 的所有文件或目录;
①~]# find /usr -not -user root -a -not -user bin -a -not -user hadoop
②~]# find /usr -not ( -user root -o -user bin -o -user hadoop ) -ls

3、查找/etc 目录下最近一周内其内容修改过,且属主不是 root 用户也不是 hadoop 用户的文件或目录;
~]# find /etc -mtime -7 -a -not ( -user root -o -user hadoop ) -ls
~]# find /etc -mtime -7 -a -not -user root -a -not -user hadoop -ls

4、查找当前系统上没有属或属组,且最近一周内曾被访问过的文件或目录;
~]# find / ( -nouser -o -nogroup ) -atime -7 -ls
5、查找/etc 目录下大于 1M 且类型为普通文件的所有文件;
~]# find /etc -size +1M -type f -exec ls -lh {} ;
6、查找/etc 目录下所有用户都没有写权限的文件;
~]# find /etc -not -perm /222 -type f -ls
7、查找/etc 目录至少有一类用户没有执行权限的文件;
~]# find /etc -not -perm -111 -type f -ls
8、查找/etc/init.d/目录下,所有用户都有执行权限,且其它用户有写权限的所有文件;
~]# find /etc -perm -113 -type f -ls

猜你喜欢

转载自blog.csdn.net/zt_96123/article/details/82954108
今日推荐