• linux用户、文件权限相关命令


    root

    现代操作系统一般属于多用户的操作系统,也就是说,同一台机器可以为多个用户建立账户,一般这些用户都是为普通用户,这些普通用户能同时登录这台计算机,计算机对这些用户分配一定的资源。
    普通用户在所分配到的资源内进行各自的操作,相互之间不受影响。但是这些普通用户的权限是有限制的,且用户太多的话,管理就不便,从而引入root用户。
    此用户是唯一的,且拥有系统的所有权限。root用户所在的组称为root组。“组”是具有相似权限的多个用户的集合。

    root的权利

    Linux系统的特性就是可以满足多个用户,同时工作,因此Linux系统必须具备很好的安全性。
    在安装RHEL7时设置的root管理员密码,这个root管理员就是所有UNIX系统中的超级用户,它拥有最高的系统所有权,能够管理系统的各项功能,如添加/删除用户,启动/关闭进程,开启/禁用硬件设备等等。
    因此“能力越大,责任越大”,root权限必须很好的掌握,否则一个错误的命令可能会摧毁整个系统。
    root为什么叫root?

    在Linux系统中,用户也有自己的UID身份账号且唯一
    系统管理员UID为0
    系统用户UID为1~999 Linux安装的服务程序都会创建独有的用户负责运行。
    普通用户UID从1000开始:由管理员创建

    用户组GID

    为了方便管理属于同一组的用户,Linux 系统中还引入了用户组的概念。通过使用用 户组号码(GID,Group IDentification),我们可以把多个用户加入到同一个组中,从而方 便为组中的用户统一规划权限或指定任务。
    假设有一个公司中有多个部门,每个部门中又 有很多员工。如果只想让员工访问本部门内的资源,则可以针对部门而非具体的员工来设 置权限。
    例如,可以通过对技术部门设置权限,使得只有技术部门的员工可以访问公司的 数据库信息等。
    Linux管理员在创建用户时,将自动创建一个与其同名的用户组,这个用户组只有该用户一个人

    root:默认在Unix/linux操作系统中拥有最高的管理权限。可以理解为qq群的群主
    普通用户:是管理员或者具备管理权限的用户所创建的,只能读、看,不能增、删、改。

    创建普通用户

    useradd 用户名
    passwd 用户名
    # 会提示输入密码
    

    id命令查看用户的身份信息

    id 用户名
    

    例如:

    通过root用户新建普通用户,uid是从 1000开始的,系统服务的用户,默认是在1-1000以内的,root的uid和gid都是0

    su - 用户名 切换用户

    语法: su - 用户名

    su - kingfan    #root切换普通用户不需要输入密码
    su - root        #普通用户切换root需要输入root密码
    


    切换为root用户需要输入root用户的密码

    sudo命令,使用root的身份去执行命令

    使用sudo命令的配置过程
    1.编辑 sudoers 文件,添加alex用户
    vim /etc/sudoers  使用vim命令编辑配置文件
    visudo    提供语法检测,更为友好
    
    2.添加kingfan用户,让它可以使用root身份
    ## The COMMANDS section may have other options added to it.
    ##
    ## Allow root to run any commands anywhere
    root          ALL=(ALL)       ALL
    kingfan    ALL=(ALL)       ALL
    

    这样我们就可以临时获取root的权限执行命令

    sudo ls /root
    

    文件权限相关

    首先看下文件的相关信息


    解读上图:

    权限,第一个字母为文件类型,后续9个字母,每3个一组,是三种身份的权限
    文件链接数
    文件拥有者-属主
    文件拥有组-属组
    文件大小
    最后一次被修改的时间日期
    文件名
    先来分析一下文件的类型

    -    一般文件
    d    文件夹
    l    软连接(快捷方式)
    b    块设备,存储媒体文件为主
    c    代表键盘,鼠标等设备
    
    -rw-r--r--. 		1			 root      root         0 Jan  9 08:43		 imroot
    可读可写权限		链接数		属主       属组         日期相关 			文件名
    
    user    属主  属于某个人的
    
    group   属组   这个用户属于某个组 
    
    other	对于既不属于某个用户,也不属于某个组,就是一个其他人的身份  
    	
    
    -   		 rw-   			 r--     		r--
    文件类型	(user属主)		(组权限)   		(其他人权限)
    
    -  普通文件 
    d  文件夹 
    l   快捷方式,软连接   link 快捷方式
    
    
    r  可读 
    w   可写 
    x  可执行 
    -   没有权限
    	
    -  			rw-       	---      	---.        1   root     root     1187 Jan  9 09:02 maillog
    普通文件    可读可写     组没权限   其他人没权限     属主     属组    
    
    
    对文件的权限来看 
    r    cat 
    w     vim 
    x    可执行 ,如同 .sh  .py  
    
    对于目录的权限来看
    
    r    可以ls   可以ls查看文件夹内容 
    w    可以进入目录,创建文本  touch 
    x    可进入目录 可以 cd   
    
    d rwx    r-x   r-x. 2 root root  6 Jan  9 09:42 liqingyang
    
    对于rwx的权限转化为数字 
    
    r    4  
    w    2  
    x     1 
    
    
    chmod (change mode 更改权限)
    
    chmod   u/g/o  
    
    user  
    group 
    other 
    
    
    chmod  u+r  file 
    chmod  u+w  file 
    chmod  u+x   file 
    
    chmod  g+r   file 
    chmod  g+w   file 
    chmod  g+x   file 
    
    chmod  o+r   file 
    chmod  o+w   file 
    chmod  o+x   file 
    
    chmod  777  file  
    	rwx  rwx  rwx 
    7  user  
    7 group 
    7  other
    
    chmod  555  file 
    r-x r-x r-x  
    
    chmod  666 file 
    rw- rw-  rw- 
    
    chown  更改文件的属主
    chown  alex  file   更改file的属主是alex
    chgrp  alex  file   更改file的属组是alex 
    

    软连接

    软连接也叫做符号链接,类似于windows的快捷方式。

    常用于安装软件的快捷方式配置,如python,nginx等

    ln -s 目标文件  软连接名
    
    1.存在文件/tmp/test.txt
    [root@master tmp]# ls -l
    -rw-r--r-- 1 root root     10 10月 15 21:23 test.txt
    
    2.在/home目录中建立软连接,指向/tmp/test.txt文件
    ln -s /tmp/test.txt my_test
    
    3.查看软连接信息
    lrwxrwxrwx 1 root root 13 10月 15 21:35 my_test -> /tmp/test.txt
    
    4.通过软连接查看文件
    cat my_test
    
    my_test只是/tmp/test.txt的一个别名,因此删除my_test不会影响/tmp/test.txt,但是删除了本尊,
    快捷方式就无意义不存在了
    

    tar解压命令

    语法

    tar(选项)(参数)
    -A或--catenate:新增文件到以存在的备份文件;
    -B:设置区块大小;
    -c或--create:建立新的备份文件;
    -C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
    -d:记录文件的差别;
    -x或--extract或--get:从备份文件中还原文件;
    -t或--list:列出备份文件的内容;
    -z或--gzip或--ungzip:通过gzip指令处理备份文件;
    -Z或--compress或--uncompress:通过compress指令处理备份文件;
    -f<备份文件>或--file=<备份文件>:指定备份文件;
    -v或--verbose:显示指令执行过程;
    -r:添加文件到已经压缩的文件;
    -u:添加改变了和现有的文件到已经存在的压缩文件;
    -j:支持bzip2解压文件;
    -v:显示操作过程;
    -l:文件系统边界设置;
    -k:保留原有文件不覆盖;
    -m:保留文件不被覆盖;
    -w:确认压缩文件的正确性;
    -p或--same-permissions:用原来的文件权限还原文件;
    -P或--absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
    -N <日期格式> 或 --newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
    --exclude=<范本样式>:排除符合范本样式的文件。
    

    实例

    tar -zxvf Python-3.7.0b3.tgz #解压
    
    tar -czvf oldboy.txt.tar.gz oldboy.txt #压缩oldboy.txt  
    上述命令等于 tar -cvf oldboy.tar oldboy.txt
            gzip oldboy.tar
    
    tar -cf all_pic.tar *.jpg #压缩当前目录所有jpg结尾的文件
    
    tar -xjf xx.tar.bz2  #解压缩bz2结尾的文件
    

    gzip命令

    gzip用来压缩文件,是个使用广泛的压缩程序,被压缩的以".gz"扩展名
    gzip可以压缩较大的文件,以60%~70%压缩率来节省磁盘空间
    

    语法

    -d或--decompress或----uncompress:解开压缩文件;
    -f或——force:强行压缩文件。
    -h或——help:在线帮助;
    -l或——list:列出压缩文件的相关信息;
    -L或——license:显示版本与版权信息;
    -r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
    -v或——verbose:显示指令执行过程;
    

    实例

    压缩当前目录所有文件为.gz文件
    gzip * 
    把上例中每个压缩的文件解压,并列出详细的信息
    gzip -dv *
    
    显示压缩文件的信息,并不解压
    gzip -l *
    压缩一个tar备份文件,扩展名是tar.gz
    tar -cf my.tar my_first.py
    gzip -r my.tar
    
  • 相关阅读:
    C# 协变 逆变
    go slice 理解
    为什么避免使用Task.Wait或者Task.Result
    IL笔记
    docker随笔
    领域事件
    总结笔记
    基于ASP.NET Core 3.x的端点路由(Endpoint Routing)实现控制器(Controller)和操作(Action)分离的接口服务
    CentOS7 多IP搭建SOCKS5代理服务器
    Springboot 实现数据库备份还原
  • 原文地址:https://www.cnblogs.com/Kingfan1993/p/10243815.html
Copyright © 2020-2023  润新知