• Linux学习笔记(12)linux文件目录与用户管理


    基本常用目录

     

     如何查看一个文件夹下所有文件总和大小?

     du -sh *   #当前目录下所有文件文件夹大小

     

    1、文件及目录

    1.1、文件/文件夹权限

    用法:

      (1)    chgrp group_name dir_name/file_name,

      (2)    chown user_name:group_name dir_name/file_name

      (3)    chmod 777 dir_name/file_name ,-R 可以递归

     

    说明:【1】中4为r,2为w,1为x,最末尾的+_号为是否有ACL链接

    以.开头的文件默认为隐藏文件

    1.2、目录及文件查看/操作

    Cd、pwd、mkdir、rmdir、rm、cp、mv、ls、umask、touch、chattr/lsattr、file、which、groupadd、useradd/usermod、su、passwd

    ./为当前目录,../为上层目录        

    【1】    cd(change directroy):  进入/切换到某个目录

      基本用法:cd /home/test  进入test文件夹

      (1)cd - :返回操作之前的目录

      (2)cd ~:返回到登录账户的家目录/直接 cd

      (3)cd . 进入当前目录

      (4)cd ..进入上一级目录

    【2】pwd :查看当前目录的绝对路径

      基本用法:pwd ,查看当前目录绝对路径

      (1)    pwd [-P] :返回真实文件名(在有软硬链接的情况下)

    【3】mkdir :建立目录

      基本用法:mkdir folder ,在当前工作目录建立folder文件夹

      (1)    mkdir –m 711 path : 新建path目录并授予711权限

      (2)    mkdir –p folder1/folder2/folder3 :如果folder1不存在,递归建立目录

    【4】rmdir:删除空目录

      基本用法: rmdir null_ folder删除空目录 null_folder

           (1)rmdir –p folder1/folder2/folder3 :如果folder1为空目录,递归删除目录

    【5】rm :删除文件/ 加上-r可以删除文件夹

      基本用法:rm file_name 删除当前工作目录下文件名为file_name的文件

      (1)    rm –f file  删除file文件并不提示

      (2)    rm –i file  删除file文件并做提示是否确认要删除

      (3)    rm –r folder 删除该文件夹及其下所有文件及文件夹

    【6】cp:复制文件

      基本用法:cp 源文件  目标路径/目标文件

      (1)    -a  其实就是 -rpd 一起

      (2)    -i    确认提醒,以防生成的目标文件覆盖现有同名文件

      (3)    -r    递归复制/复制目录

      (4)   -p 连同文件的权限、属性、用户等信息全部复制过去

      (5)   -d 若源文件是链接文件,则复制链接属性

    【7】mv :移动文件

      基本用法:mv 源文件  目标路径/目标文件

           同cp,有-r 、-i

      【8】ls :查看当前目录

    基本用法:ls  查看当前目录下非隐藏文件

           (1)-a 显示出所有文件(包括隐藏和非隐藏)

           (2)-l  显示出非隐藏文件的详细信息(包括权限、归属等)

      (3)-h 显示成人能看懂的格式   比如原本文件大小是没有单位的,加上-h就有了

      (4)-d 显示目录权限,一般ls -ld /ect/ 类似于这样使用

      (5)-i  显示文件的id号

    【9】umask:查看当前工作目录的预设权限

    基本用法:

      (1)    umask ,会返回一串字符 如0022   (2)umask 002改变权限。

      分析:

      (1)中4位数字,第1位代表指令权限,不用管,后面3位分别代表owner,group,other,并且这个数字表达出的意思是没有的权限,比如这个022,那么换成权限就是 rwxr-xr-x,就是说group和other缺少w(换成数字就是2)权限。  

      (2)把权限改成002,就是变成rwxrwxr-x,也就是说只少other的w权限

    【权限0022 第1位是代表特殊权限如1.3,4代表SUID,2代表SGID,1代表SBIT】

      (3)umask –S  可以以rwx的形式展现当前工作陌路的预设权限

    【10】touch:创建空文件、修改时间     基本用法:touch file_name

    【11】chattr/lsattr 隐藏属性

    基本用法 chattr +i/+a folder/file , lsattr folder/file

    分析:

      (1)chattr +i/+a folder/file ,

      【+i】 会让文档无法被删除、改名、软连接、写入、修改

          【+a】 会让该文档无法删除和修改,只能进行追加操作

        设置了chattr +i属性后,可以用chattr -i 文件名 的方式取消i属性,取消后就还原了。

      (2)lsattr

    显示文档的隐藏属性

    【12】file folder/file:查看文件属性

    【13】which 命令(如ls):查看该命令在哪个

    【14】groupadd newGroupNmae:新建一个群组

    【15】useradd/usermod:新建用户/用户属性改变

      (1)useradd -g 主组 -G 副组(逗号区分) 用户名

    比如useradd -g oinstall -G dba,oper oracle 就是创建oracle用户。主组为oinstall 副组为dba和oper

      (2)usermod -G groupname username

    将存在的用户名加入到一个存在的组中去

      (3)修改用户名:

     usermod -l 新用户名  老用户名 -d /home/新用户名 -m 老用户名

    【16】id username:查看用户属性

    例:id guochaoqun

    uid=500(guochaoqun) gid=500(guochaoqun) groups=500(guochaoqun),501(test)

     【17】su - username :切换用户

    【18】passwd  username :修改用户密码(注意只有当前为root才能修改其他用户否则只能修改当前用户的密码)

     1.3、文件特殊权限SUID,SGID,SBIT

    4代表SUID,2代表SGID,1代表SBIT】

    注意,SUID与SGID、SBIT都会显示在X权限的为止

    SUID:执行该文件时,拥有该文件own的权限(在777权限中以own中的s表示)

     

    SGID:与SUID相同,只是own变成group(在777权限中以group中的s表示)

     

    SBIT:如果甲于A目录有group和other的w权限,这表示【甲可以对A目录下任何人建立的文件和目录进行  删除/移动/更名 等操作】,如果A目录加上了SBIT的权限项,则甲只能对自己建立的文件进行w操作,而无法对其他人建立的文件和目录进行w操作。(在777权限中,以oher位置的t表示),如图:

     

    权限设定:chmod 4755

     

    大写的S S T

    附录

    基本:cd,more,less,cat,vi,mkdir,rmdir,rm,cp,mv,grep,ls,head,tail,sort,uniq,diff,file,find,bzip2,bzcat/bunzip2,tar -cvf 文件1 文件2, tar -xvf 文件.tar,

    进入目录:cd  目标文件夹

    返回上层目录:cd ../

    同级目录:cd  ./

    显示内容:cat 文件名   /more 文件名/less 文件名      

    创建并编辑文件:vi

    创建删除目录:mkdir/rmdir 目标文件夹

    删除文件:rm 目标文件 / -i 删除前询问 / -f 直接删除 / -r 删除目录及目录中所有文件

    复制:cp 源文件 目标位置新文件名

    移动:mv 源文件 目标位置新文件名

    文件中内容模糊匹配:grep '匹配字符' 文件名    /  cat 文件名 |grep '匹配字符'

    查看目录:ls

    显示文件头部:head 文件名(默认10行)head -x 文件名(显示前X行)

    显示文件尾部:tail 文件名(默认10行  tail -x 文件名(显示后X行)

    按照字符排序:sort 文件名 / sort -u 文件名 (去掉重复行显示)

    去掉文件内相邻重复行:uniq 文件名,

    查看两文件的区别:diff 文件1 文件2 / -u 合并查询,无符号为共有,-号为文件1独有,+号为文件2

    查看文件状态信息:file 文件名(查看文件编码/大小等信息)/file 文件1 文件2 文件3

    查找的目录:find 后接查找的目录,-name指定需要查找的文件名称,名称可以使用*表示所有。

    find  /home  -name  “*.txt” ;查找/home目录下,所有以.txt结尾的文件或者目录。

    系统:who,w,finger,write,mesg,date,echo,pwd,ACL

    显示当前连接用户信息:who/w

    发送信息给连接用户: write 用户 回车  输入发送信息  回车 按ctrl+c结束。

    关闭开启信息发送接收:mesg y/n

    显示当前日志:date

    复制自身参数并在屏幕上显示:echo 数据

    查看当前目录所在位置:pwd

    ACL使用:

    [root@zyq-server data]# setfacl  -m u:zyq:rwx test.sh

    [root@zyq-server data]# getfacl  -c test.sh

    ctrl+w:去掉当前单词组

    ctrl+u: 行删除

    ctrl+h: 单个单词删除

    【2】用户操作

    【2.1】创建用户 useradd

    Linux useradd 命令用于建立用户帐号。
    
    useradd 可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码。而可用 userdel 删除帐号。使用 useradd 指令所建立的帐号,实际上是保存在 /etc/passwd 文本文件中。
    
    语法
    useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]
    或
    
    useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]
    参数说明:
    
    -c<备注>  加上备注文字。备注文字会保存在passwd的备注栏位中。
    -d<登入目录>  指定用户登入时的起始目录。
    -D  变更预设值.
    -e<有效期限>  指定帐号的有效期限。
    -f<缓冲天数>  指定在密码过期后多少天即关闭该帐号。
    -g<群组>  指定用户所属的群组。
    -G<群组>  指定用户所属的附加群组。
    -m  自动建立用户的登入目录。
    -M  不要自动建立用户的登入目录。
    -n  取消建立以用户名称为名的群组.
    -r  建立系统帐号。
    -s<shell>   指定用户登入后所使用的shell。
    -u<uid>  指定用户ID。
    实例
    添加一般用户
    
    # useradd tt
    为添加的用户指定相应的用户组
    
    # useradd -g root tt
    创建一个系统用户
    
    # useradd -r tt
    为新添加的用户指定home目录
    
    # useradd -d /home/myd tt
    建立用户且制定ID
    
    # useradd caojh -u 544

    【2.2】增删改用户及设置密码 passwd

    useradd testuser  创建用户testuser
    passwd testuser  给已创建的用户testuser设置密码
    说明:新创建的用户会在/home下创建一个用户目录testuser
    usermod --help  修改用户这个命令的相关参数
    userdel testuser  删除用户testuser
    rm -rf testuser  删除用户testuser所在目录

    【2.3】添加一个不能登录的用户

    #添加一个不能登录的用户
    useradd apache -d /usr/local/apache -g apache -s /bin/false

    要拒绝系统用户登录,可以将其 shell 设置为 /usr/sbin/nologin 或者 /bin/false。

    usermod -s | --shell /usr/sbin/nologin username

    或者

    usermod -s | -shell /bin/false username

    说明及比较:

    /bin/false

    /bin/false 什么也不做只是返回一个错误状态,然后立即退出。将用户的 shell 设置为 /bin/false,用户会无法登录,并且不会有任何提示。

    /usr/sbin/nologin

    nologin 会礼貌的向用户显示一条信息,并拒绝用户登录:

    This account is currently not available.

    有一些软件,比如一些 ftp 服务器软件,对于本地非虚拟账户,只有用户有有效的 shell 才能使用 ftp 服务。这时候就可以使用 nologin 使用户即不能登录系统,还能使用一些系统服务,比如 ftp 服务。/bin/false 则不行,这是二者的重要区别之一。

    /etc/nologin

    如果存在 /etc/nologin 文件,则系统只允许 root 用户登录,其他用户全部被拒绝登录,并向他们显示 /etc/nologin 文件的内容。

    【2.4】 /sbin/nologin和/bin/false的区别

    linux 中useradd -s /sbin/nologin和/bin/false的区别

    /bin/false是最严格的禁止login选项,一切服务都不能用,
    /sbin/nologin只是不允许系统login,可以使用其他ftp等服务

    如果想要用false在禁止login的同时允许ftp,则必须在/etc/shells里增加一行/bin/false。

  • 相关阅读:
    有点感叹,陪伴一年多的py2终于换py3了
    一句话检测XSS
    Mongodb3.4异常无法启动的处理 Process: 6874 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=100)
    Hadoop完全云计算平台搭建
    MySQL ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 42. Created with MySQL 50560, now running 50729. Please use mysql_upgrade to fix this error.
    v-on(事件处理)
    javascript获取以及设置光标位置
    小程序图片处理
    vue api
    处理回车提交、ctrl+enter和shift+enter都不提交->textarea正常换行
  • 原文地址:https://www.cnblogs.com/gered/p/10182208.html
Copyright © 2020-2023  润新知