文本处理工具命令使用以及文件权限管理

一 sort uniq wc cut tr 等文本处理工具的基本用法

1.  通过who命令查看当前登录了哪些用户,并通过uniq或sort -u命令将重复的行只显示一次
[root@Linuxprobe ~]# who | cut -d' ' -f1 | sort -u  目前查看系统有两个用户登录
harrycai
root
[root@Linuxprobe ~]# who | cut -d' ' -f1 |  uniq使用uniq命令
harrycai 
root
2 使用last命令可以查到登录系统用户顺序,取出第一个为最后一个登录到系统的用户
[root@Linuxprobe ~]# last | head -n1   取出最后一个登录系统的用户为root
root pts/210.127.69.23 Sun Aug 13 10:22   still logged in  
3 统计出现相同的行可以使用uniq -c 选项
[root@Linuxprobe ~]# cut -d: -f7 /etc/passwd | sort | uniq -c | sort -n  查看统计结果为noloin最多
  1 /bin/nologin
  1 /bin/sync
  1 /sbin/halt
  1 /sbin/shutdown
  9 /bin/bash
 37 /sbin/nologin

4 先使用sort命令-t指定分隔符-k指定为第三段的UID进行排序,再用tail命令取出UID最大的后10行并使用tr命令转换成大写输出重定向至/tmp/maxusers.txt文件

[root@Linuxprobe ~]# sort -t: -k3 -n  /etc/passwd | tail -n10 | tr 'a-z' 'A-Z' > /tmp/maxusers.txt 
[root@Linuxprobe ~]# cat /tmp/maxusers.txt 
HARRYCAI:X:1000:1000:HARRY.CAI:/HOME/HARRYCAI:/BIN/BASH
STUDENT:X:1001:1001::/HOME/STUDENT:/BIN/BASH
BASH:X:1002:1002::/HOME/BASH:/BIN/BASH
NOLOGIN:X:1003:1003::/HOME/NOLOGIN:/BIN/NOLOGIN
USER1:X:1004:1004::/HOME/USER1:/BIN/BASH
USER2:X:1005:1005::/HOME/USER2:/BIN/BASH
USER3:X:1006:1006::/HOME/USER3:/BIN/BASH
JERRY:X:1007:1007::/HOME/JERRY:/BIN/BASH
SAM:X:1008:1008::/HOME/SAM:/BIN/BASH
NFSNOBODY:X:65534:65534:ANONYMOUS NFS USER:/VAR/LIB/NFS:/SBIN/NOLOGIN

5 使用cut命令取出当前主机ip地址

[root@Linuxprobe ~]# ifconfig | head -n2 | tail -1 | cut -d" " -f10
10.127.69.19

6 取出/etc下所有已.conf结尾的文件转换成大写后保存至/tmp/.comf
[root@Linuxprobe ~]# ls /etc/*.conf | tr 'a-z' "A-Z" > /tmp/.conf
[root@Linuxprobe ~]# cat /tmp/.conf 
/ETC/ASOUND.CONF
/ETC/BRLTTY.CONF
/ETC/CGCONFIG.CONF
................. 略

7 统计/var目录下所有目录以及文件数量
[root@Linuxprobe ~]# ls /var/ | wc -l
22

8 对/etc/group 文件第三个字段进行排序并显示最小的10个
[root@Linuxprobe ~]# sort -t: -k3 -n /etc/group | head -n10

9 将/etc/fastb和/etc/issue文件合并为/tmp/etc.test
[root@Linuxprobe ~]# cat /etc/fstab >> /tmp/etc.test 可使用追加输出重定向至 /tmp/etc.test
[root@Linuxprobe ~]# cat /etc/issue >> /tmp/etc.test

二 文件权限管理


(一) 用户和组

Linux系统中用户的类别可分为管理用户,系统用户和普通用户三类

  • 管理用户:拥有最高权限的root账号,为避免误操作建议尽量使用普通用户登录系统 UID 0
  • 系统用户: 系统运行某些服务类进程为了避免进程被劫持致使root账号被泄露,一般在运行服务类进程时建议使用非管理员账号运行,因此通常会创建多个普通用户,这类用户只以该身份运行某些服务类进程一般不会登陆系统 1-499(CentOS6) 1-999(CentOS7)
  • 普通用户: 一般普通用户 500-60000 (CentOS6) 1000-60000 (CentOS7) 同样的Linux也会分为管理组,系统组和登陆组

(二)权限管理

  • 一般基本权限可分为读,写和执行 rwx
  • 对于目录而言读权限表示可以ls查看目录的内容;写权限可以在目录中删除或创建目录或文件;执行权限表示可以cd至该目录
  • 对于文件而言读权限表示可以使用cat等命令查看文件内容;写权限表示可对内容进行修改;执行权限表示可以将文件启动一个进程
  • 文件安全上下文:
  • [root@Linuxprobe ~]# ls -l /etc/fstab
  • -rw-r–r–. 1 root root 483 Apr 13 23:51 /etc/fstab 第1位代表文件类型,其余9位每三位一组,第一组为用户权限,第二组为组权限,第三组为其它用户权限,root root 代表文件属主为root属组也为root

    1. 一个用户打开一个文件或目录或先去匹配文件的属主是否为此用户,如果是则匹配用户权限,如果不是则进入2
    2. 用户会匹配自己是否是文件属组的用户,如果是则匹配组权限位,如果不是则使用其它用户权限位

(三) 特殊权限

Linux系统中还有SUID,SGID和STICKY三个特殊权限位

  1. SUID:默认情况一下用户打开一个进程,进程的属主为其发起者,因此以其发起者的身份运行。如果一个程序用于SUID权限,那么进程的属主将会是该文件的属主而不是发起者的身份运行。

    • 如果属组原本有执行权限,文件属主权限位显示为小写s,否则为大写S
    • 管理文件的SUID权限: chmod u+|-s FILE
  2. SGID:当一个目录拥有SGID权限并且该目录属组拥有写权限,那么在此目录下创建文件的属组为此目录的属组而不是该用户的基本组
  3. STICKY:对于属组或全局可写的目录,组内的所有任务或系统上的所有用户对此目录中都能创建或删除文件;如果为此类目录设置sticky权限,则每个用户能创建新文件并且只能删除属主为自己的文件

四 用户及权限管理命令用法

1 组管理命令
groupadd命令:  groupadd [options] group  创建一个组
 -g GID:指定GID: 默认是上一个组的GID
 -r  创建系统组:
groupmod命令: group - user group file
 -g GID:指定GID
 2 用户管理命令
useradd命令:   useradd [options] LOGIN 创建一个用户
 -u 指定UID
 -g GROUP  指定基本组,此组需要事先存在
 -G GROUP1[,GROUP2,...[,GROUPN]]]  指定附加组
 -c 用户注释信息
 -d 以指定的路径为用户的家目录:通过复制/etc/skel此目录并重新命名实现,指定的家目录路径如果事先存在,则不会为用户复制环境配置文件
 -s 指定用户的默认shell,可用的所有shell列表为/etc/shells 文件、
 -M 不为用户创建家目录
 -D 显示创建用户的默认配置
注意:创建用户时的诸多默认配置文件/etc/login.defs
userdel命令:用户删除
 -r 删除用户一并删除家目录
passwd命令: passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays]  [-S] [--stdin] [username]
   (1) passwd:修改用户自己的密码
   (2) passwd username: 修改指定用户密码
-l,-u:锁定和解锁用户
 -d :删除一个用户的密码
 -e date:过期期限,日期
 -i  days:非活动期限
 -n DAYS:密码使用的最短使用期限
 -x DAYS:密码的最长使用期限
 -w DAYS:密码警告时间
3 文件权限修改命令

权限管理命令:
chmod命令:  chmod [OPTION]... MODE[,MODE]... FILE...   
chmod [OPTION]... OCTAL-MODE FILE...
chmod [OPTION]... --reference=RFILE FILE..
MODE表示法:
   赋权表示法 u= | g= | o= | a=
   授权表示法 u+,u- | g+,g- | o+, o-
chmod --reference=/etc/fstab /var/tmp/harry.cai/test  根据其他文件的权限修改
选项:
 -R 递归修改

从属关系选项管理命令:
   chown命令: chown [OPTION]... [OWNER][:[GROUP]] FILE...
   chown [OPTION]... --reference=RFILE FILE...
   -R 递归修改
umask:文件权限反向掩码,遮罩码
 文件:666 - umask 
 目录:777 - umask
之所以文件用666去减,表示文件默认不能拥有执行权限,如果减得的结果中有执行权限,则需要将其加1

三 用户及权限管理练习

1 [root@Linuxprobe ~]# groupadd distro -g 2016  创建组distro,GID2016
 2 [root@Linuxprobe ~]# useradd mandriva -u 1005 -g distro 创建用户mandriva,UID1005并设置基本组为distro
 3 [root@Linuxprobe ~]# useradd mageia -u 1110 -d /home/linux 创建用户mageia,UID1100家目录指定为/hoem/linux
 4 [root@Linuxprobe linu]# echo "mageia" | passwd --stdin mageia 给用户mageia添加密码为mageia
   Changing password for user mageia.
   passwd: all authentication tokens updated successfully.
 5 [root@Linuxprobe linu]# userdel mandriva   删除用户mandria
 6 [root@Linuxprobe linu]# useradd slackware -u 2002 -g distro -G peguin 添加用户slackware UID为2002,基本组为distro,附加组peguin
 7 [root@Linuxprobe linu]# usermod -s /bin/tcsh slackware 将slackware的默认shell修改为tcsh
 8 [root@Linuxprobe linu]# usermod -G admins slackware将slackware添加到admins附加组
 9 [root@Linuxprobe linu]# cp -r /etc/skel/ /home/tuser1  复制/etc/skel到/home/tuser1
   [root@Linuxprobe linu]# chmod -R 700 /home/tuser1/ 目录以及目录内文件属组和其他用户均没有任何权限
10 [root@Linuxprobe linu]# chown :hadoop /etc/group   将/etc/group属组改为hadoo
11 [root@Linuxprobe home]# install -m 700 -d /etc/skel/ /home/hadoop 复制/etc/skel到 /home/hadopp并修改权限为700
12 [root@Linuxprobe home]# chown hadoop:hadoop /home/hadoop/ 将/home/hadoop 属组和属主均改为hadoop

原创文章,作者:N27_CaiShuang,如若转载,请注明出处:http://www.178linux.com/84651

(0)
N27_CaiShuangN27_CaiShuang
上一篇 2017-08-13
下一篇 2017-08-13

相关推荐

  • AWK学习总结

    AWK是一种优良的文本处理工具。其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母。AWK提供了极其强大的功能:可以进行正则表达式的匹配,样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。它具备了一个完整的语言所应具有的几乎所有精美特性。 AWK学习总结 函数rand(): 函数length() 函数int()…

    Linux干货 2016-12-03
  • 对软连接进行cp,rm

    软连接的原理 图1 由 1 号inode 读取到连结档的内容仅有档名,根据档名链接到正确的目录去取得目标文件的inode , 最终就能够读取到正确的数据了。 软连接的使用 创建软连接,从下图可以看出软连接的大小是11个字节,对比/etc/passwd和passwdlns可知他们不是同一个文件。 在复制cp的时候对软连接的处理 对指向文件的的软连接:使用cp …

    Linux干货 2017-02-25
  • 网络设备及工作

    集线器集线器又叫Hub,是一种多用于星形网络组织的中心设备。具备中继器放大信号的特点,集线器是一种半双工,同一时间只能接收或发送数据,不能同时既接受又发送数据,是冲突型设备,共享带宽,放大信号的同时放大噪声,不隔离广播,不能成环,不安全。 二层交换机二层交换机的工作原理能自学习构造MAC地址表,基于MAC地址表进行转发、划分冲突域,对MAC地址实现过滤等功能…

    Linux干货 2017-10-30
  • 第一周课程练习

    1、描述计算机的组成及其功能。 计算机由硬件、操作系统、软件三大部分组成。 硬件包括核心CPU(大脑处理中心)、必备电源(心脏动力来源)、硬盘(仓库)内存(中转站)、主板(协调)、网卡、声卡、显卡、风扇、光驱、显示器、鼠标、键盘、麦克风音箱,闪存、蓝牙等。  计算机五大组成部分及功能。   运算器:     …

    Linux干货 2016-08-15
  • N26-第九周

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现; #!/bin/bash # # # NUM1=0 NUM2=0 for i in `cut -d: -f7 /etc/passwd` ;do if [[ “$i” = ‘/bin/bash…

    Linux干货 2017-03-15
  • Linux磁盘管理

                             Linux磁盘管理 磁盘管理:  本章内容    磁盘结构    分区类型   &nbsp…

    系统运维 2016-09-02

评论列表(1条)

  • 马哥教育
    马哥教育 2017-08-20 19:10

    一开始的作业比较简单,但都是比较重要的基础,掌握扎实非常的必要,这次作业完成的非常好,再接再励。