Linux文件管理和用户管理-阿里云开发者社区

开发者社区> 技术小胖子> 正文

Linux文件管理和用户管理

简介:
+关注继续查看

Linux命令格式:

命令   [选项]   [参数]

命令:实现某种功能的程序。如lsdate

选项:命令中实现某种功能的字母(短选项)单词(长选项)代号。如ls  --help    ls   -a

参数:命令操作的对象,通常是文件名、磁盘设备名、用户名、服务名等。如ls  -lh   /etc

 

命令分类:文件管理、用户管理、权限管理、磁盘管理、系统服务、网络服务……

 

--------------------

文件管理

目标:对系统中的文件进行增、删、该、查。

 

查询:

1、查看当前工作路径:pwd

2、查文件列表:ls

格式:ls   [-arRlh]   [路径]

注:当不指定路径是则显示当前目录路径下的文件列表。

选项:

--help   显示帮助

-a     all,显示所有文件,包括以.开头的隐藏文件。ls  -a  /root

-l      long长格式显示文件属性(包括类型、权限、链接数、属主、属组、大小、时间、文件名)ls  -l   /root

-h     -l 一起,以易于阅读的格式输出文件大小( 1K 234M 2G)ls  -lh   /root

-r     逆序排列(降序)。对比ls   /    ls   -r   / 结果的区别。

-R    递归显示子目录。ls  -R  /etc/sysconfig

 

Linux的文件类型:

-  普通文件,文本文件、mp3音乐、avi视频、jpg图片等。如ls  -l /etc/host*

d  目录,即文件夹。例:ls  -l   /

  软链接文件,即快捷方式。例:ls  -l   /

b  block设备文件,即硬盘、分区、u盘。例:ls  -l /dev/sd*

c  字符设备文件,通常指命令终端设备。例:ls  -l /dev/tty*

s  套接字文件,通常是网络服务生成的,文件中保存的IPport端口号。例:ls  -l  /run/rpcbind.sock

p  管道文件(pipo),用来做命名管道。例:ls-l /run/systemd/inhibit

 

查文件类型的方法:

方法一:ls  -ld   文件名或目录名。例:ls  -ld  /etc/hosts /etc

方法二:file   文件名或目录名。例:file  /etc/hosts  /etc /dev/sda /dev/tty

 

3、查看纯文本文件内容:

cattacnlheadtailmorelessgrep

 

cat:读全文

:cat   /etc/passwd

 cat  -n   /etc/passwd    显示行号

 cat  -A   /etc/hosts   等于-vET,其中-E在每行结束处显示"$"

 

tac:逆序读全文

:  tac   /etc/hosts

 

nl:读全文并显示行号。忽略空白行(即空白行无行号)nl   /etc/yum.conf

 

head:读开头

head  /etc/passwd    读前10

   head  -5   /etc/passwd   读前5

 

tail:读结尾

tail  /etc/passwd    读最后10

   tail  -6   /etc/passwd   读最后6

 

问题:读/etc/passwd文件的第6行内容?/etc/passwd文件的倒数第7行内容?/etc/passwd的前12行内容并显示行号?

解答:head   -6   /etc/passwd  |  tail  -1

     tail  -7   /etc/passwd |head  -1

     head   -12   /etc/passwd  | cat -n

说明:|是管道符号,作用是将前一个命令的结果传给后一个命令继续处理。一条命令中可以多个管道符。

 

more:读更多,向下翻页显示

例:more   /etc/passwd

   空格下翻一页,回车下翻一行,q键退出。

 

less:读更少,上下翻页显示

例:less   /etc/passwd

   可用方向键,空格或PageDown下翻一页,PageUp上翻一页,回车下翻一行,q键退出。

 

grep:读关键字所在的内容。也称为匹配关键字。

用法:grep  [选项]   关键字   文件名

例如:grep   root   /etc/passwd     显示/etc/passwd文件中的root关键字的内容

     grep   ^root   /etc/passwd    显示以root开头的。^(上尖、拖字符、乘方)表示锚定开头

     grep   bash$   /etc/passwd    显示以bash结尾的。$表示锚定结尾

选项:

--help 显示帮助

--color 以彩色显示关键字,centos7默认开启了此功能

-n  显示行号

-E  启用扩展正则表达式字符。如|表示或者。grep  -En  'root|adm|lp' /etc/passwd

-w  精确匹配关键字。对比grep  localhost  /etc/hostsgrep  -w  localhost  /etc/hosts

-v   反向匹配,即不包含关键字的内容。grep  -v  127   /etc/hosts

-B  显示关键字及其beforen行内容。grep  -B  2  adm   /etc/passwd

-A  显示关键字及其aftern行内容。grep  -A  2  adm   /etc/passwd

 

touch:创建空文件,或更新文件的时间。

例:touch  a b  c   创建3个文件

    ls    显示文件列表

 

stat:显示文件的状态信息(详细属性),属性包括文件路径、大小、块、文件类型、Inode索引号、硬链接个数、权限、uidgid、环境(SElinux属性)、时间。

例:stat   /etc/hosts

文件的3个时间:

atime:访问时间(Access)。是指用touchcathead等命令访问过这个文件。touch  /etc/hosts后再看文件的3个时间。

mtime:更改时间(modify)。是指用vimgedit等命令修改过文件内容。

ctime:改动时间(change)。是指用chownchmod改过文件的属性、权限。chmod  -v +x  /etc/hosts后再看文件的ctime时间。

 

rm:删除(remove)文件或目录(即文件夹)

例:ls

    rm  -fv a  b  c    强制(-f)删除当前目录中的abc文件,并显示过程(-v)

    rm  -rfv /tmp/*    清空/tmp目录中的所有文件。-r是递归(目录中及其子目录)

 

----------------------------------------

目录管理(文件夹)

pwdlscdmkdirrmdir

pwd:显示工作路径

cd:切换目录(change  directory),即打开文件夹

例:cd   cd  ~ 切换到当前用户的家目录

   pwd   显示工作路径

   cd  /etc/sysconfig/network-scripts   切换到指定的目录

   ls    显示文件列表

   cd   ..   切换上一级目录。..表示上一级目录。.表示当前目录自己

   cd   ../..   返回上一级的上一级目录

   cd   /    切换到根目录

说明:鼠标双击打开一个文件夹,其实后台执行了cdlspwd这些命令。

 

mkdir:新建目录

例:cd

   mkdir  -v  ak bk  ck   在当前目录中新建3个目录,并显示过程

   ls   显示文件列表

   mkdir  -v  1/2/3/4   会提示无法创建,因为没有1/2/3目录,所以无法创建4目录

   mkdir  -pv  1/2/3/4  正常在当前目录中新建多级目录1/2/3/4-p是创建父级目录。

 

rmdir:删除空目录。

   rmdir  -pv  1/2/3/4  逐步删除1/2/3/4这几个空目录

   rmdir  -v  ak bk  ck   删除当前目录下指定的空目录

-----------------

文件和目录管理公用:

rm删除、cp复制、mv移动

rm -rfv  /tmp/*   清空/tmp目录下的所有文件

 

cp:复制

用法:cp  [-rapv]   来源   目标

例:cp  -v  /etc/host*  /tmp/    /etc/host*文件复制到/tmp/目录下

   cp  -v   /opt  /tmp/    提示略过目录"/opt",说明复制失败,要用-r递归复制

   cp  -rv  /opt   /tmp/option   /opt目录复制到/tmp目录下改名为option-r是递归复制文件夹。

 

mv:移动(move)

用法:mv  [-v]   来源   目标

例:cd  切换到用户的家目录

   mkdir  -v   dir1  创建dir1目录

   mv  -v   dir1 dir2    dir1改名为dir2

   mv  -v  dir2  /tmp/   dir2移动到/tmp目录下

 -----------------------------

通配符:在文件管理中用来模糊匹配字符。常见符号如下。

?:匹配任意单个字符。例1ls  /dev/tty?    2ls  /dev/tty2?

*:匹配任意0个或多个字符。例1ls  /dev/tty   2ls  /etc/host*

[]匹配[]中的任意单个字符。例:ls  /dev/tty[135]2

                           例:ls  /dev/tty2[0-37-9]

{}:展开。格式是{首数..尾数..步长}。例1echo  a{0..9}   b{0..9..2}

                                    2mkdir  -v a{0..5}

                                    3rmdir  -v a{0..5}

 

--------------

重定向输出:作用是将原本显示在屏幕上的信息写入到指定的文件中。分为>覆盖写入,>>追加写入。

例:date  >  a.txt   date命令的结果覆盖写入到a.txt

   cat   a.txt   a.txt文件

  lsblk  >>  a.txt  lsblk命令的结果追加写入到a.txt

 

  cat  a.txt

 

------------------------

用户管理目标:

1、用户账号的作用

2、用户增、删、改、查

3、用户账号的相关数据文件

4、用户组的创建、用户的分组

 

 

用户账号的作用:

1、标识用户的身份,让每个用户有私有的文件夹(家目录),未授权时,每个人只能访问自己的文件。

2、每个用户远程管理服务器时,所做的操作,root管理员可查到。

 

 

 

查询:

查用户id号:id     id   用户名

注:id查到的信息包括uid用户号、gid组号、Gid附属组,root用户的3ID号都为0

 

 

用户账号的相关数据文件:

 

一、passwd记录用户的账号信息。用useradd增、userdel删除、usermod改会影响到此文件内容。

用户的账号信息文件:head  -3  /etc/passwd  内容如下

root:x:0:0:root:/root:/bin/bash

格式说明:

1.用户名:

2.密码:x表示此用户需要用密码登录。如果想免密码登录,用vim修改此文件,将x删掉即可。

3.用户uid

4.用户的gid组号

5.用户的备注信息

6.用户的家目录

7.用户登录的shell环境

 

二、shadow文件记录用户密码信息。用usermodpasswd会影响此文件内容。

head  -3   /etc/shadow  内容如下

root:$6$Se16soYt$MK.mk:17464:0:99999:7:::

bin:*:17110:0:99999:7:::

格式说明:

1.用户名

2.加密的密码

3.最后密码修改的时间

4.允许修改密码最小间隔时间

5.允许修改密码最大间隔时间

6.密码过期警告时间

7.密码的宽限时间

8.密码的失效时间(--)

9.保留,暂时没有具体功能

 

三、用户账号的增、删、改,以及密码设置。

(add)useradd

(del)userdel

(modify)usermod

密码设置:passwd

临时切换用户:su  -   用户名     (用exit退出此用户)

---------------------------

(add)useradd

查帮助手册:man  useradd

格式:useradd   [选项]   用户名

例:useradd  -D     显示或更改默认的useradd 配置。这些设置保存在/etc/default/useradd文件中

    useradd   ak   创建ak用户。是按照系统默认设置来创建。

    useradd   -d /opt/sky  -u 110  -s  /sbin/nologin  -c  'admin'  sky

    useradd  -g  2  -G 0,1,2   -s  /bin/bash  bk

    tail  -5 /etc/passwd    查看/etc/passwd文件的最后5

 

选项:

  -b, --base-dir BASE_DIR       新账户的主目录的基目录

  -c, --comment COMMENT         新账户的 GECOS 字段(即备注)

  -d, --home-dir HOME_DIR       新账户的主目录(即家目录)

  -D, --defaults                 显示或更改默认的 useradd 配置

  -e, --expiredate EXPIRE_DATE  新账户的过期日期

  -f,--inactive INACTIVE       新账户的密码不活动期

  -g, --gid GROUP             新账户主组的名称或 ID必须指定已存在的组号或组名

  -G, --groups GROUPS   新账户的附加组列表

  -h,--help                    显示此帮助信息并推出

  -k,--skel SKEL_DIR       使用此目录作为骨架目录

  -K,--key KEY=VALUE           不使用/etc/login.defs 中的默认值

  -l,--no-log-init      不要将此用户添加到最近登录和登录失败数据库

  -m,--create-home        创建用户的主目录

  -M, --no-create-home           不创建用户的主目录

  -N,--no-user-group      不创建同名的组

  -o,--non-unique            允许使用重复的 UID 创建用户

  -p,--password PASSWORD           加密后的新账户密码

  -r, --system                  创建一个系统账户

  -R,--root CHROOT_DIR         chroot 到的目录

  -s, --shell SHELL             新账户的登录 shell

  -u, --uid UID                   新账户的用户ID

  -U,--user-group            创建与用户同名的组

  -Z,--selinux-user SEUSER               SELinux 用户映射使用指定SEUSER

 

 

(del)userdel

格式:userdel  [-r]  用户名

例:userdel  -r  ak   删除ak用户账号及(-r)其家目录和邮件,用户的邮件位于/var/spool/mail目录中

   userdel  sky    删除sky用户账号

   userdel  bk

   ls  /home   /opt  显示指定目录的文件列表。看是否有skybk目录

 

 

 

 

(modify)usermod

功能:修改用户账号的相关信息,包括用户名、备注描述信息、家目录、uidgid、附属组、shell等信息。

格式:usermod  [选项]  用户名

例:useradd   ak  创建ak账号

    passwd  ak    ak用户设置登录密码

   id  ak   id

   grep  ak  /etc/passwd   显示/etc/passwd文件中关于ak的内容

    usermod  ak  -c  'admin'     -u  120 -g  2  -G 0,2,5  -s  /sbin/nologin

    usermod  ak  -md /opt/ak   ak用户的家搬到/opt/ak目录

    usermod  -L   ak   锁定ak账号

    usermod  -U   ak   解锁ak账号

    passwd  -S   ak  ak账号的密码状态

    usermod  ak   -l  aker    修改ak用户名为aker

    userdel -r   aker    删除aker用户及其家目录和邮件

 

选项:

  -c,--comment 注释            GECOS 字段的新值

  -d,--home HOME_DIR           用户的新主目录

  -e,--expiredate EXPIRE_DATE  设定帐户过期的日期为EXPIRE_DATE

  -f,--inactive INACTIVE       过期 INACTIVE 天数后,设定密码为失效状态

  -g,--gid GROUP               强制使用 GROUP 为新主组

  -G,--groups GROUPS           新的附加组列表GROUPS

  -a,--append GROUP            将用户追加至上边 -G 中提到的附加组中,

                                并不从其它组中删除此用户

  -h,--help                    显示此帮助信息并推出

  -l,--login LOGIN             新的登录名称

  -L,--lock                    锁定用户帐号

  -m,--move-home               将家目录内容移至新位置 (仅于 -d 一起使用)

  -o,--non-unique              允许使用重复的(非唯一的) UID

  -p,--password PASSWORD       将加密过的密码(PASSWORD) 设为新密码

  -R,--root CHROOT_DIR         chroot 到的目录

  -s,--shell SHELL             该用户帐号的新登录shell

  -u,--uid UID                 用户帐号的新 UID

  -U,--unlock                  解锁用户帐号

  -Z,--selinux-user  SEUSER       用户账户的新 SELinux 用户映射

 

密码设置:passwd

用法:passwd   [选项]   用户名

例:useradd   ak

   passwd  ak

   echo  '112' |  passwd --stdin  ak     以脚本方式给ak用户设置密码为112

   passwd  -l   ak    锁定ak账号

   passwd  -u   ak    解锁ak账号

   passwd  -x  199  ak    用户ak的密码最长有效时限为199

   passwd  -S   ak    显示ak用户的密码状态

   grep   ak  /etc/shadow  查看/etc/shadow文件中关于ak关键字的内容

    passwd  -n 3   ak    用户ak的密码最短有效时限为3(密码修改的最短间隔时间)

    passwd  -w 6   ak    用户ak的密码过期警告时间为6

   passwd  -i  4  ak    用户ak的密码过期4天后将被禁用,-1表示永远不会被禁用

 

  

 

 

 

选项:

  -k,--keep-tokens       保持身份验证令牌不过期

  -d,--delete            删除已命名帐号的密码(只有根用户才能进行此操作)

  -l,--lock              锁定指名帐户的密码(仅限 root 用户)

  -u,--unlock            解锁指名账户的密码(仅限 root 用户)

  -e,--expire            终止指名帐户的密码(仅限 root 用户)

  -f,--force             强制执行操作

  -x,--maximum=DAYS      密码的最长有效时限(只有根用户才能进行此操作)

  -n,--minimum=DAYS      密码的最短有效时限(只有根用户才能进行此操作)

  -w,--warning=DAYS      在密码过期前多少天开始提醒用户(只有根用户才能进行此操作)

  -i,--inactive=DAYS     当密码过期后经过多少天该帐号会被禁用(只有根用户才能进行此操作)

  -S,--status            报告已命名帐号的密码状态(只有根用户才能进行此操作)

 --stdin                 从标准输入读取令牌(只有根用户才能进行此操作)

----------------------

组管理目标:

1、组的作用

2、组的相关数据文件

3、组增、删、改、查

4、组的创建,组中添加、删除成员

 

1、组的作用

组:类似于QQ群的功能。可以在组中添加、删除成员。有利于对权限进行管理。

2、组的相关数据文件

组账号信息文件:head  -3  /etc/group  内容如下

root:x:0:lp

格式:  组名:组密码:gid:组成员

例:用gpasswd -a   lp   root    root组中添加lp用户。

    gpasswd  -d   lp  root    root组中删除lp用户。

 

组的密码文件:head  -3  /etc/gshadow  内容如下

root:168:adm,bin,lp:adm

格式:组名:群密码:群主:组成员

例:gpasswd   root   root组设置密码

   gpasswd  -A  adm,bin,lp  root   root设置3个管理员

   gpasswd  -M   adm  root    root组重新设置成员名单adm,会替换原名单

   head  -3  /etc/gshadow  查看/etc/gshadow文件的前3行内容

 

3、组增、删、改、查

组的增:groupadd   [选项]  组名

例:groupadd   grp1   创建grp1

   groupadd  -g  210  grp2  创建grp2组,并指定gid210

   groupadd  -r   grp3  创建系统组账号grp3。系统组通常用于管理系统服务。

   tail  -5   /etc/group

 

组的删:groupdel   [选项]  组名

例:groupdel  grp1

   groupdel  grp2

 

组的改:groupmod   [选项]  组名

例:groupmod  -g  208 grp3    grp3组的gid改成208

  groupmod   -n   g3 grp3   grp3组的名称改成g3

  groupdel   g3   删除g3

 

组的查:

显示指定用户的组信息:groups  用户名

显示系统中的所有组账号信息:cat  /etc/group

 

组密码设置:gpasswd   可以实现给组设置密码、添加和删除成员、设置组管理员

---------------------

用户和组的策略配置文件:cat   /etc/login.defs

MAIL_DIR         /var/spool/mail   用户邮件的主目录

PASS_MAX_DAYS     99999   密码的最大修改间隔时间

PASS_MIN_DAYS      0        密码的最小修改间隔时间

PASS_MIN_LEN        5       密码的最小长度

PASS_WARN_AGE    7    密码过期的警告时间

UID_MIN                 1000       普通用户uid的最小值

UID_MAX                 60000      普通用户uid的最大值

SYS_UID_MIN               201       系统用户uid的最小值(用useradd  -r 创建的是系统用户)

SYS_UID_MAX               999      系统用户uid的最大值

注:Linux用户账号分为管理员(root)、普通用户(1000~60000)、系统用户(201~999)。而uid1~200为保留号。

GID_MIN                  1000     普通组的gid最小值

GID_MAX                 60000    普通组的gid最大值

SYS_GID_MIN               201      系统组的gid最小值

SYS_GID_MAX               999     系统组的gid最大值

CREATE_HOME        yes        启用创建用户家目录

UMASK           077      普通用户的权限掩码,实际umask值为022

USERGROUPS_ENAB    yes     允许删除用户的同时删除用户的组,前提是组中没有成员存在

ENCRYPT_METHOD    SHA512  指定密码加密算法为SHA512算法。用man  login.defs来查

 

创建新用户的默认设置:cat  /etc/default/useradd

# useradd defaults file

GROUP=100  只有当用useradd  -N   lucy 创建用户时未创建同名的组时,这个新用户才会在100组中HOME=/home   用户家目录的基目录(小区)

INACTIVE=-1    密码永远不失效(不禁用)

EXPIRE=        密码的过期时间,默认为空

SHELL=/bin/bash     用户登录的shell

SKEL=/etc/skel       用户的环境模板文件目录。ls  -a /etc/skel

CREATE_MAIL_SPOOL=yes    允许给用户创建邮箱

----------------------

综合练习:

1.        创建用户tk:   useradd  tk

2.        tk的编号:id  tk

3.        tk用户的家目录搬到/opt/tker目录:   usermod   tk -md  /opt/tker

4.        修改tk用户的shell/bin/sh  usermod  tk -s  /bin/sh

5.        修改tk用户的备注信息为teacherusermod  tk  -c  'teacher'

6.        修改tk用户的用户名为tkerusermod  tk  -l  tker

7.        tker的登录密码设置为tker  echo  'tker' | passwd  --stdin tker

8.        查看tker用户的账号信息文件内容:   grep  tker   /etc/passwd

9.        查看tker用户的密码信息文件内容:   grep  tker   /etc/shadow

10.    设置tker用户的密码最短有效时间为2天:  passwd  -n 2  tker    查:passwd  -S  tker

11.    设置tker用户的密码最大有效时间为365天:   passwd  -x  365  tker

12.    设置tker用户的密码过期后4天将被禁用:   passwd  -i  4  tker

13.    查看tker用户的密码状态信息:   passwd  -S tker

14.    删除tker用户及其家目录和邮件:   userdel  -r  tker

15.    创建3个部门的组teachsalesdesign。查看这3个组信息文件内容。

16.    teach组创建2用户账号tomjack,给sales组创建2个用户账号lucylily,给design组创建2个用户账号timjim。查看这3个组信息文件内容。

17.    teach组设置管理员为tom,给sales组设置管理员为lucy,给design组设置管理员为jim。查看这3个组的管理员信息文件内容。

18.    删除3个部门的组teachsalesdesign

19.    删除以上创建的所有用户账号及其家目录和邮箱。

 

 

 

 

 

       本文转自rshare 51CTO博客,原文链接:http://blog.51cto.com/1364952/1976858,如需转载请自行联系原作者


 


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Linux之文件管理(一)
BASH SHELL对文件进行管理(一) 创建、复制、删除、移动、查看、编辑、压缩、查找 一切目录的起点都是 / 目录结构: ls / bin dev home lib64 mnt proc run srv tmp var boot etc lib media o...
729 0
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载