linux用户和用组权限管理

1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。

使用who命令查看

例子:

[[email protected] ~]# who
root     pts/0        2016-08-19 10:41 (192.168.2.102)
developer pts/3        2016-08-19 10:41 (192.168.2.102)

上述输出结果解释:用户名、tty号、时间日期、主机地址

2、取出最后登录到当前系统的用户的相关信息。

使用last命令查看

[[email protected] ~]# last -x -n 3 root
root     pts/0        192.168.2.102    Fri Aug 19 10:41   still logged in   
root     pts/2        192.168.2.102    Fri Aug 19 10:31 - 10:41  (00:09)    
root     pts/1        192.168.2.102    Fri Aug 19 09:43 - 10:41  (00:57)

上述输出结果解释:用户名、tty号、登录的IP地址、登录的时间日期、登出的时间 终端工作时长

3、取出当前系统上被用户当作其默认shell的最多的那个shell。

[[email protected] etc]#  cut -d: -f7 /etc/passwd|uniq -c|sort -n |tail -n 1 |awk ‘{print $2}‘
/sbin/nologin

4、将/etc/passwd 中的第三个字段数值最大的后10个用户的信息全部改为大写后保存至/tmp/maxusers.txt文件中。

效果如下

[[email protected] etc]# sort -n -k 3 -t":" /etc/passwd | tail -n 10 | tr [a-z] [A-Z] > /tmp/maxusers.txt
[[email protected] etc]# sort -n -k 3 -t":" /etc/passwd | tail -n 10 | tr [a-z] [A-Z] 
SYSTEMD-NETWORK:X:998:996:SYSTEMD NETWORK MANAGEMENT:/:/SBIN/NOLOGIN
SYSTEMD-BUS-PROXY:X:999:997:SYSTEMD BUS PROXY:/:/SBIN/NOLOGIN
NGINX:X:1000:1000::/HOME/NGINX:/SBIN/NOLOGIN
MYSQL:X:1001:1001::/HOME/MYSQL:/BIN/FALSE
BSB:X:1002:1002::/HOME/BSB:/SBIN/NOLOGIN
SLACKWARE:X:2016:1004::/HOME/SLACKWARE:/BIN/BASH
BBB:X:2017:2017::/HOME/BBB:/BIN/BASH
BSBD:X:2018:2018::/HOME/BSBD:/BIN/BASH
OPENSTACK:X:2019:2019::/HOME/OPENSTACK:/BIN/BASH
NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN

5、取出当前主机的IP地址,提示:对ifconfig命令的结果进行切分。

效果如下,这里我使用两种方法截取地址,方法很多不一一演示,喜欢的朋友可以自己尝试。

[[email protected] etc]# ifconfig 
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.104  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 fe80::20c:29ff:fea3:b9d9  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:a3:b9:d9  txqueuelen 1000  (Ethernet)
        RX packets 86190  bytes 23306723 (22.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 26301  bytes 20574763 (19.6 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 7184  bytes 2394467 (2.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 7184  bytes 2394467 (2.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[[email protected] etc]# ifconfig | egrep "eno1677|eth0" -A1 |grep inet | awk ‘{print $2}‘
192.168.2.104
[[email protected] etc]#ifconfig eth0 | grep ‘inet addr‘| awk ‘{print $2}‘ | tr -d "addr:"

6、列出/etc目录下所有以.conf结尾的文件的文件名,并将其名字转换为大写后保存至/tmp/etc.conf文件中。

ls /etc/ | grep -E ".conf$" | tr [a-z] [A-Z] > /tmp/etc.conf

7、显示/var目录下一级子目录或文件的总个数。

[[email protected] var]# ls -l | grep "^[d|-]" | wc -l
17

8、取出/etc/group文件中第三个字段数值最小的10个组的名字。

[[email protected] var]# sort -n -t ":" -k 3 /etc/group | head -n 10 | cut -d: -f1
root
bin
daemon
sys
adm
tty
disk
lp
mem
kmem

9、将/etc/fstab和/etc/issue文件的内容合并为同一个内容后保存至/tmp/etc.test文件中。

 cat /etc/fstab /etc/issue >>/tmp/etc/test
 讲解:如上操作是把cat查看到issue文件中的内容追加到test当中,>>表示追加不覆盖>清空原来内容并追加issue内容到test中,在使用过程中一定要注意区分。老鸟玩家可以略过,给新人给提个醒。

10、请总结描述用户和组管理类命令的使用方法并完成以下练习:

(1)、创建组distro,其GID为2016;

   groupadd distro -g 2016

(2)、创建用户mandriva, 其ID号为1005;基本组为distro;

   useradd mandriva -u 1005 -g distro

(3)、创建用户mageia,其ID号为1100,家目录为/home/linux;

   useradd mageia -u 1100 -s -d /home/linux

(4)、给用户mageia添加密码,密码为mageedu;

    echo ‘mageedu’| passwd --stdin mageia

(5)、删除mandriva,但保留其家目录;

   userdel mandriva

(6)、创建用户slackware,其ID号为2002,基本组为distro,附加组peguin;

   useradd slackware -u 2002 -g distro -G peguin

(7)、修改slackware的默认shell为/bin/tcsh;

   usermod  -s slackware /bin/tcsh

(8)、为用户slackware新增附加组admins;

     groupadd admins
   usermod slackware -a -G admins
   usermod slackware -G admins

注:如上两条命令都是一样的效果的,-a一般跟着-G一起使用,默认可以去掉,这里提一下。

(9)、为slackware添加密码,且要求密码最短使用期限为3天,最长为180天,警告为3天;

   echo "5858888" |passwd --stdin slackware && chage -W 3 -E 180 -I 3 slackware

注:&&简单点描述,表示执行完成上一个操作后,跟着执行后面的操作,老鸟忽略,提供给新手理解。

(10)、添加用户openstack,其ID号为3003, 基本组为clouds,附加组为peguin和nova;

   useradd openstack -u 3003 -g clouds -G peguin,nova

(11)、添加系统用户mysql,要求其shell为/sbin/nologin;

     useradd test -s /sbin/nologin

(12)、使用echo命令,非交互式为openstack添加密码。

   echo "5858888" |passwd --stdin openstack

总结:

本章学习中,出现的命令有,tr ,sort ,useradd ,usermod ,ls ,groupadd ,echo ,tail ,cut ,awk ,head ,wc.等命令,因为在日常工作中时常会有所忘记,这里对部分命令的用法做个讲解,以备日后之需。

1、tr

用法:tr [选项]... SET1 [SET2]
从标准输入中替换、缩减和/或删除字符,并将结果写到标准输出。
-c:首先补足SET1
-d:删除匹配SET1 的内容,并不作替换
-s:如果匹配于SET1 的字符在输入序列中存在连续的        
-t:先将SET1 的长度截为和SET2 相等
SET 是一组字符串,一般都可按照字面含义理解。解析序列如下:
  \NNN    八进制值为NNN 的字符(1 至3 个数位)
  \\        反斜杠
  \a        终端鸣响
  \b        退格
  \f        换页
  \n        换行
  \r        回车
  \t        水平制表符
  \v        垂直制表符

2、usermod

-a|--append     ##把用户追加到某些组中,仅和-G参数结合使用 
-c|--comment     ##修改/etc/passwd文件第五段comment 
-d|--home     ##修改用户的家目录通常和-m选项一起使用 
-e|--expiredate  ##指定用户帐号禁用的日期,格式YY-MM-DD 
-f|--inactive   ##用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1
-g|--gid     ##修改用户的gid,改组一定存在
-G|--groups    ##把用户追加到某些组中,仅与-a选项一起使用 
-l|--login    ##修改用户的登录名称 
-L|--lock    ##锁定用户的密码 
-m|--move-home ##修改用户的家目录通常和-d选项一起使用 
-s|--shell   ##修改用户的shell 
-u|--uid    ##修改用户的uid,该uid必须唯一 
-U|--unlock  ##解锁用户的密码

3、useradd

useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是终极用户。
2.格式
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
3.主要参数
-c:加上备注文字,备注文字保存在passwd的备注栏中。 
-d:指定用户登入时的启始目录。
-D:变更预设值。
-e:指定账号的有效期限,缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的起始群组。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。
-u:指定用户ID号。

4、groupadd

groupadd [-g gid] [-o]] [-r] [-f] groupname
-g gid:指定组ID号。
-o:允许组ID号,不必惟一。
-r:加入组ID号,低于499系统账号。
-f:加入已经有的组时,发展程序退出。

5、cut

cut  [-bn] [file] 或 cut [-c] [file]  或  cut [-df] [file]
使用说明
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。
主要参数
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的<br />范围之内,该字符将被写出;否则,该字符将被排除

6、awk

awk命令形式:
awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file
 [-F|-f|-v]   大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value
‘  ‘          引用代码块
BEGIN   初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符
//           匹配代码块,可以是字符串或正则表达式
{}           命令代码块,包含一条或多条命令
;          多条命令使用分号分隔
END      结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息
 
特殊要点:
$0           表示整个当前行
$1           每行第一个字段
NF          字段数量变量
NR          每行的记录号,多文件记录递增
FNR        与NR类似,不过多文件记录不递增,每个文件都从1开始
\t            制表符
\n           换行符
FS          BEGIN时定义分隔符
RS       输入的记录分隔符, 默认为换行符(即文本是按一行一行输入)
~            匹配,与==相比不是精确比较
!~           不匹配,不精确比较
==         等于,必须全部相等,精确比较
!=           不等于,精确比较
&&      逻辑与
||             逻辑或
+            匹配时表示1个或1个以上
/[0-9][0-9]+/   两个或两个以上数字
/[0-9][0-9]*/    一个或一个以上数字
FILENAME 文件名
OFS      输出字段分隔符, 默认也是空格,可以改为制表符等
ORS        输出的记录分隔符,默认为换行符,即处理结果也是一行一行输出到屏幕
-F‘[:#/]‘   定义三个分隔符。

7、head

用法:head [选项]... [文件]...
长选项必须使用的参数对于短选项时也是必需使用的。
-c:显示每个文件的前K 字节内容;
                        如果附加"-"参数,则除了每个文件的最后K字节数据外
                        显示剩余全部内容
-n:显示每个文件的前K 行内容;
                        如果附加"-"参数,则除了每个文件的最后K 行外显示
                        剩余全部内容
-q:不显示包含给定文件名的文件头

8、wc

wc命令的功能为统计指定文件中的字节数、单词数、行数, 并将统计结果显示输出
-c, --bytes打印字节数
-m, --chars  打印字符数 
-l, --lines  打印行数 
-L, --max-line-length  打印最长行的长度
-w, --words 打印单词数

注:以上命令介绍均来源网络收集。

时间: 2024-12-09 05:17:31

linux用户和用组权限管理的相关文章

LINUX用户、用户组及权限管理

LINUX用户.用户组及权限管理 一.LINUX权限管理 LINUX权限分为:r,w,x,读,写,可执行 对文件来说: r 可读,即可以使用类似cat等命令查看文件的内容 w 可写,可以编辑或删除此文件: x 可执行,exacutable,可以在命令提示符下当做命令提交给内核运行. 对于目录来说(默认有x权限): r 可以对此目录执行ls以列出内部的所有文件 w 可以在此目录中创建文件 x 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息. 文件 目录 r 可读,即可以使用类

Linux 用户、用户组及权限管理

一.Linux用户及用户组的基本概念 用户:用户是实现能够将有限的资源在多个使用者之间进行分配:. 用户组:用户组是指多个用户的集合,方便对一类需要同样权限的用户授权 Linux是多用户.多任务的操作系统. 多用户指:多人同时使用系统资源:多任务:同时运行多个进程 二.用户及用户组类别 1.用户:名称解析库 /etc/passwd a.管理员 root 用户标识(UID)为0 b.普通用户及系统用户 普通用户的用户标识(既UID): CentOS 5,6: 500+ CentOS 7: 1000

linux用户和群组

一.帐户概述 1.帐户实质 Linux 操作系统是一个多用户的操作系统,它允许多个用户同时登陆到系统上,使用系统资源.系统根据帐户来区分每个用户的文件.进程.任务,给每个用户提供特定的工作环境(如用户的工作目录.SHELL 版本以及 X-Window 环境的配置等),使每个用户的工作都能独立不受干扰地进行. 2.用户和组 从广义上讲,Linux 帐户包括用户帐户和组帐户. 用户帐户 Linux 上的用户帐户有两种:普通用户帐户和超级用户帐户(root). 普通用户帐户---普通用户帐户在系统上的

Linux中的账号和权限管理(理论讲解部分)

小伙伴们本次给大家带来的是Linux中的账号和权限管理,这里我们首先要明确的就是这个权限是文件或者目录的权限.接下来我们会从以下几个部分进行了解: 用户账号和组账号概述 用户账号和组账号管理 查询账号信息 查看目录或文件的属性 设置目录或文件的权限 设置目录或文件的归属 用户账号和组账号概述Linux基于用户身份对资源访问进行控制1.用户账号:? 超级用户? 普通用户? 匿名用户(everyone)? 程序用户(人为不可使用,单独管理系统中某个应用程序存在的服务)2.组账号:组是系统用户权限的集

Oracle用户及角色的权限管理[Oracle基础]

1.查看所有用户: select * from dba_users; select * from all_users; select * from user_users; 2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限): select * from dba_sys_privs; select * from user_sys_privs; 3.查看角色(只能查看登陆用户拥有的角色)所包含的权限 sql>select * from role_sys_privs; 4.查看用户对象权限:

Linux用户和组权限管理

一.文件的权限 文件的权限主要针对三类对象进行定义 owner:属主u:   group:属组g:    other :其他o 每个文件针对每类访问者都定义了三种权限: r:Readable   w: Writable    x: eXcutable 对文件来说 r: 可使用文件查看类工具获取其内容 w: 可修改其内容 x: 可以把此文件提请内核启动为一个进程 对目录来说 r : 可以使用ls查看此目录中文件列表 w: 可在此目录中创建文件,也可删除此目录中的文件 x: 可以使用ls -l查看此

Linux的用户与用户组(权限管理)

linux用户与用户.权限管理 用户管理: 1.useradd 创建用户 -c 指定用户描述 -d 指定家目录 默认家目录 /home下同名的目录 -g 指定主组 -G 指定附加组 [注意:一个用户主组只能有一个,而附加组可以有多个] -s 指定shell程序 特殊:/sbin/nologin --> 不容许登陆系统的用户 -u 指定UID -M 不创建家目录 2.userdel -r 带着家目录一块删除 3.usermod - 修改 -c -d -m -g -G -s -u -o(容许UID相

linux初步学习之用户和用户组及权限管理浅谈

用户.组: 多用户:多人同时使用系统资源:        AAA: Authentication身份验证多任务:同行运行多个进程:               Authorization授权 Account账户 用户的类别: 管理员:root 普通用户: 系统用户:仅用于运行服务程序: 登录用户:系统资源的正常使用者: 用户标识:UserID, UID 16bits二进制数字:0-65535: 管理员:0 普通用户: 系统用户: CentOS 5, 6: 1-499 CentOS 7: 1-99

Linux用户、群组、权限

Linux中一切皆文件 用户与组 /etc/passwd     用户的配置文件 一行就是一个用户信息,以:分为七段 1.用户名 2.密码占位符(代表有密码,若删除后就无密码)    密码放在另一个文件中 /etc/shadow(用户的密码文件)  密码为密文,无密码显示!! 3.uid ,用户的ID号 4.gid ,用户的组ID 5.用户的描述信息(可有可无) 6.用户的家目录 7./bin/bash 或者 /sbin/nologin 两种,他们定位到两个文件,执行时第一个相当于再打开一个终端