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

一 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

相关推荐

  • Linux启动流程

    Linux的启动流程有以下部分组成,以下流程以CentOs 6.8为例 1、POST加电自检,检测各项硬件工作是否正常,BIOS选择启动设备。 2、根据设备的前446字节,加载bootloader程序 3、initramfs是1.5阶段,intramfs文件是创建系统时生成的文件。intramfs是一个过渡阶段,initramfs加载系统的一些设备驱动,比如…

    2017-05-15
  • 编译内核

    先把下载的内核解压展开归档 tar -xvf linux-4.12.tar.xz   把linux系统中的/boot/config-3.10.0-514.el7.x86_64 copy到归档文件中并命名为.config   cp config-3.10.0-514.el7.x86_64 /app/linux-4.12/.conf…

    2017-07-12
  • MAN 手册各章节功能及快捷键键位介绍

      man命令在linux下属于一种帮助命令,man手册提供了比较齐全的帮助格式,它大致分为8个章节 一.各个章节如下 1 – commands 1-普通的命令 (用户命令,  可由任何人启动的) 2 – system calls 2-系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函…

    Linux干货 2016-10-17
  • 文件查找与压缩-1

       1、 locate命令(非实时查找即数据库查找) 1)、查询系统上预建的文件索引数据库/var/lib/mlocate/mlocate.db      依赖于事先构建的索引;索引的构建是在系统较为空闲时自动进行( 周期性任务) 或者管理员手动更新数据库即是执行#updatedb命令;引构建过程…

    Linux干货 2016-08-15
  • Linux网络配置

    (1)、ifcfg家庭命令配置: ifconfig/route/netstat ifup/ifdown   (2)、ip命令配置: ip addr | route | link   (3)、修改配置文件 IP、MASK、GW、DNS相关配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE 路由相关…

    2018-01-30
  • Raid的工作原理

    1,什么是Raid Raid的基本原理就是把多个磁盘组合到一起,组成一个磁盘组,使性能达到或超过一个容量巨大价格昂工艺的磁盘,当然基于硬件的RAID解决方案比基于软件RAID技术在使用性能和服务性能上稍胜一筹,具体表现在检测和修复多位错误的能力、错误磁盘自动检测和阵列重建等方面。 2.RAID级别介绍;一般常用的RAID阶层,分别是RAID 0、RAID1、…

    Linux干货 2017-06-19

评论列表(1条)

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

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