当前位置:首页 > linux基础 > 正文内容

Linux用户的基本操作

5年前 (2019-08-29)linux基础708

用户基本概述


1.什么是用户?

用户指的是能够正常登录Linux或Windows系统


2.Linux下的用户有什么用?

2.1.系统上的每一个进程(运行的程序),都需要一个特定的用户运行

2.2.通常在公司是使用普通用户管理服务器,因为root权限过大,容易造成故障。

2.3.每一个文件都有特定的用户拥有,所以访问一个文件或目录受到用户的限制

2.4.进程能够以何种方式访问某一个文件或目录, 与进程所关联的用户有关


3.如何查看系统中所存在的用户

[root@bgx ~]# id    #查看当前所登陆的用户信息
uid=0(root) gid=0(root) groups=0(root)
[root@bgx ~]# id oldboy #查看其它用户的信息
uid=1000(oldboy) gid=1000(oldboy) groups=1000(oldboy)

3.1:每一个文件都有所有者

[root@db04 tmp]# ll
总用量 12
drwxr-xr-x 2 zls     zls     4096 6月   2 20:44 zls
drwxr-xr-x 2 oldboy  oldboy  4096 6月   2 20:44 oldboy
drwxr-xr-x 2 student student 4096 6月   2 20:44 student

3.2:每一个进程都有用户运行

[root@db04 ~]# ps -ef|less
root      33782  0.0  0.0      0     0 ?        R    02:46   0:00 [kworker/u256:0]
root      35637  0.0  0.0      0     0 ?        R    05:11   0:03 [kworker/0:2]

3.4用户相关配置文件

用户的信息存放在/etc/passwd用户的密码都保存在/etc/shadow这两个文件是linux系统中最重要的文件之一。

如果没有这两个文件或者这两个文件出问题,会导致无法正常登录linux系统。

[root@zls ~]# head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash

image.png

/etc/shadow 密码配置文件

image.png


4.用户分类

用户UID系统中约定的含义
0
超级管理员,最高权限
1~200系统用户,用来运行系统自带的进程
201~999系统用户,用来运行用户安装的程序
1000+普通用户,正常可以登陆系统的用户,权限比较小,能执行的任务有限

PS:在CentOS7系统之前, UID1-499用于系统用户, 而UID 500+则用于普通用户


使用chage更改用户密码密码使用情况(了解内容)

-d  #设置最近一次更改密码时间, 0下次登陆系统强制修改密码
-m  #设置用户两次改变密码之间使用"最小天数"
-M  #设置用户两次改变密码之间使用"最大天数"
-W  #设置密码更改警告时间 将过期警告天数设为“警告天数”
-I  #设置密码过期天数后, 密码为失效状态
-E  #设置用户过期时间, 账户失效后无法登陆
-l  #显示用户信息

##修改时间为2014年08月31日,和图中时间匹配,方便后续验证
[root@zls ~]# date -s '20140831'
Sun Aug 31 00:00:00 CST 2014
[root@zls ~]# date
Sun Aug 31 00:00:01 CST 2014
[root@zls ~]# useradd zls1
[root@zls ~]# echo "123" |passwd --stdin zls1
[root@zls ~]# tail -1 /etc/shadow
zls1:!!:16312:0:99999:7:::

##设置最近一次修改密码时间
[root@zls ~]# chage -d "2014-09-01" zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:0:99999:7:::

##设置最短使用密码时间
[root@zls ~]# chage -m 2 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:99999:7:::

##设置密码最长使用时间
[root@zls ~]# chage -M 15 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:7:::

##设置密码警告时间
[root@zls ~]# chage -W 6 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:6:::
[root@zls ~]# chage -W 7 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:7:::

##设置密码过期时间
[root@zls ~]# chage -I 5 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:6:5::

##设置用户过期时间
[root@zls ~]# chage -E "20115-08-31" zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:6:5:6627567:
[root@zls ~]# chage -l zls1
Last password change            : Sep 01, 2014       ##最近一次更改密码时间
Password expires                : Sep 16, 2014      ##密码过期时间
Password inactive               : Sep 21, 2014      ##密码失效时间
Account expires                 : Aug 31, 2015     ##用户失效时间
Minimum number of days between password change      : 2    ##密码最短使用时间
Maximum number of days between password change      : 15    ##密码最长使用时间
Number of days of warning before password expires    : 7     ##密码过期前警告天数

##如何验证,只调整时间为如下进行验证:
1.验证普通用户是否能修改密码, 不需要调整时间。

2.普通用户登陆系统后, 会提示警告密码还剩多少天过期
[root@zls ~]# date -s "2014-09-12"

3.普通用户登陆系统后, 强制要求修改密码
[root@zls ~]# date -s "2014-09-18"

4.普通用户登陆系统后, 提示账户已过期
[root@zls ~]# date -s "2014-09-23"

用户相关命令

用户的创建、变更、删除命令: useradd、usermod、userdel


1.使用useradd命令新增用户


-u  #指定要创建用户的UID,不允许冲突

-g  #指定要创建用户默认组

-G  #指定要创建用户附加组,逗号隔开可添加多个附加组

-d  #指定要创建用户家目录

-s  #指定要创建用户的bash shell

-c  #指定要创建用户注释信息

-M  #给创建的用户不创建家目录

-r  #创建系统账户,默认无家目录


1.1:创建qmf用户,UID5001,基本组students,附加组sa 注释信息:2019 new student,登陆shell:/bin/bash

[root@qmf ~]# groupadd sa
[root@qmf ~]# groupadd students
[root@qmf ~]# useradd -u 5001 -g students -G sa -c "2019 new student" -s /bin/bash qmf

2.2:创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统

[root@qmf ~]# useradd mysql -M -s /sbin/nologin
[root@qmf ~]# useradd -r dba -s /sbin/nologin


2.如何使用usermod命令修改用户信息


-u   #指定要修改用户的UID

-g   #指定要修改用户基本组

-G   #指定要修改用户附加组,使用逗号隔开多个附加组, 覆盖原有的附加组

-d   #指定要修改用户家目录

-s   #指定要修改用户的bash shell

-c   #指定要修改用户注释信息

-l   #指定要修改用户的登陆名

-L   #指定要锁定的用户

-U   #指定要解锁的用户


2.1:检查此前创建的用户信息

[root@qmf ~]# grep "qmf" /etc/passwd
qmf:x:5001:503:2019 new student:/home/qmf:/bin/bash

2.2:修改qmf用户uid、gid,附加组

[root@qmf ~]# groupadd -g 5008 network_sa
[root@qmf ~]# groupadd -g 5009 devops
[root@qmf ~]# usermod -u 6001 -g5008 -a -G 5009 qmf

2.3:修改qmf用户的注释信息, 用户家目录, 登录shell, 登录名

[root@qmf ~]# usermod -c "2019 new student" -md /qmf -s /bin/sh -l change_qmf qmf

检查是否修改成功

[root@qmf ~]# grep "qmf" /etc/passwd
qmf_xuliangwei:x:6001:5008:2019 new student:/qmf:/bin/sh
[root@qmf ~]# id change_qmf
uid=6001(change_qmf) gid=5008(network_sa) groups=5008(network_sa),503(sa),5009(devops)
[root@qmf ~]# ll -d /qmf
drwx------. 2 qmf_xuliangwei network_sa 4096 2014-09-23 00:13 /qmf

2.4:锁定用户[扩展]

[root@qmf ~]# echo "123" |passwd --stdin change_qmf
[root@qmf ~]# usermod -L change_qmf  #锁定后会无法登陆系统

2.5:解锁用户[扩展]

[root@qmf ~]# usermod -U change_qmf

PS: 当然还有很多命令可以查看用户的信息,以下简单列举一些,但都是我们常用,所以了解即可

1) 使用finger命名查询用户信息以及登录信息,示例: finger UserName

2) 使用chfn命令修改用户信息,示例: chfn UserName

3) 使用chsh命令修改用户登录Bash Shell,示例: chsh UserName

4) 使用who、whoami、w检查用户登陆情况


3:userdel删除账户


3.1.删除user1用户,但不删除用户家目录和 mail spool

[root@qmf ~]# userdel user1

3.2.-r参数可以连同用户家目录一起删除(慎用)

[root@qmf ~]# userdel -r user1


3.用户扩展知识


用户的创建流程

1.useradd创建用户时,系统会以/etc/login.defs、/etc/defaults/useradd两个配置文件作为参照物,如果在创建用户时指定了参数则会覆盖/etc/login.defs、/etc/defaults/useradd文件默认配置,如未指定则使用默认。

[root@qmf ~]# grep -Ev "^#|^$" /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_MAX                 60000
SYS_UID_MIN               201
SYS_UID_MAX               999
GID_MIN                  1000
GID_MAX                 60000
SYS_GID_MIN               201
SYS_GID_MAX               999
CREATE_HOME yes
UMASK           077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
[root@qmf ~]# cat /etc/default/useradd
GROUP=100
HOME=/home        #把用户的家目录建在/home中。
INACTIVE=-1       #是否启用账号过期停权,-1表示不启用。
EXPIRE=         #账号终止日期,不设置表示不启用。
SHELL=/bin/bash      #新用户默认所有的shell类型。
SKEL=/etc/skel      #配置新用户家目录的默认文件存放路径。
CREATE_MAIL_SPOOL=yes   #创建mail文件。

2.当使用useradd创建用户时,创建的用户家目录下会存在 .bash_* 环境变量相关的文件,这些环境变量文件默认从/etc/skel目录中拷贝。这个默认拷贝环境变量位置是由/etc/defaults/useradd配置文件中定义的。


#故障案例,在当前用户家目录执行了rm -rf .*,下次登录系统时出现-bash-4.1$,如何解决!

-bash-4.1$ cp -a /etc/skel/.bash* ./

-bash-4.1$ exit

[root@qmf ~]#   #重新连接即可恢复


2.为新用户设定密码,变更用户密码

创建用户后,如需要使用该用户登陆系统则需要为用户设定密码,设定密码使用passwd命令。建议密码复杂度高一些、长度大于10、出现各种特殊字符、无任何规律(不要出现名字,电话,生日等)

PS: 注意事项

1.普通用户只允许变更自己的密码,无法修改其他人密码,并且密码长度必须8位字符

2.管理员用户允许修改任何人的密码,无论密码长度多长或多短。

#1.使用passwd命令修改用户密码
# passwd        #给当前用户修改密码
# passwd root     #给root用户修改密码
# passwd oldboy     #给oldboy用户修改密码,普通用户只能自己修改自己

#2.验证如下几项指标
# passwd                #root管理员用户登陆,修改root用户密码
# passwd xuliangwei          #root用户登陆,修改其他用户的密码
$ passwd root             #普通用户修改root管理员密码
# echo "123" | passwd --stdin xuliangwei    #非交互式修改密码

#3.系统内置变量生成随机字符串
[root@qmf ~]# echo $RANDOM|md5sum|cut -c 1-10
d09fe9b1xs
[root@qmf ~]# echo $(echo $RANDOM|md5sum |cut -c 5-14) |tee pass.txt| passwd --stdin xuliangwei

#4.mkpasswd生成随机字符串, -l设定密码长度,-d数子,-c小写字母,-C大写字母,-s特殊字符
[root@qmf ~]# yum install -y expect   //需要安装扩展包
[root@qmf ~]# mkpasswd -l 10 -d 2 -c 2 -C 2 -s 4
|K&13bR)i/

PS: 推荐密码保存套件工具,支持windows、MacOS、Iphone以及浏览器插件Lastpass官方网站


4.用户组的管理

4.1什么是用户组?

其实就是一种逻辑层面的定义,逻辑上将多个用户归纳至一个组,当我们对组操作,其实就相当于对组中的所有用户操作。


4.2.对于用户来说,组有几种类别?

基本组,用户只能有一个基本组,创建时可通过-g指定,如未指定则创建一个默认的组(与用户同名)

附加组,基本组不能满足授权要求,创建附加组,将用户加入该组,用户可以属于多个附加组

image.png

4.3.那组的信息保存在哪呢?

组账户信息保存在/etc/group和/etc/gshadow两个文件中。

1./etc/group 配置文件解释如下图

image.png

2./etc/gshadow 配置文件解释如下图

image.png


5:使用groupadd命令新增组,groupadd [-g GID] groupname

#创建基本组, 不指定gid
[root@qmf ~]# groupadd no_gid
[root@qmf ~]# tail -n1 /etc/group
no_gid:x:1000:

#创建基本组, 指定gid为5555
[root@qmf ~]# groupadd -g 5555 yes_gid
[root@qmf ~]# tail -n1 /etc/group
yes_gid:x:5555:

#创建系统组,gid从201-999
[root@qmf ~]# groupadd -r sys_group
[root@qmf ~]# tail -n1 /etc/group
sys_group:x:990:


6:使用groupmod命令修改组

#-g 修改组gid
[root@qmf ~]# groupmod -g 1111 no_gid
[root@qmf ~]# tail -1 /etc/group
no_gid:x:1111:

#-n 修改组名称
[root@qmf ~]# groupmod -n active_group yes_gid
[root@qmf ~]# tail -1 /etc/group
active_group:x:5555:


7:groupdel删除组

删除时需要注意,如果用户存在基本组则无法直接删除该组,如果删除用户则会移除默认的私有组,而不会移除基本组。


#删除组
[root@qmf ~]# groupdel active_group

#删除用户附加组
[root@qmf ~]# id xuliangwei
uid=1069(xuliangwei) gid=5005(xuliangwei) groups=5005(xuliangwei),5004(devops)
[root@qmf ~]# groupdel devops
[root@qmf ~]# id xuliangwei
uid=1069(xuliangwei) gid=5005(xuliangwei) groups=5005(xuliangwei)

#无法删除用户基本组
[root@qmf ~]# groupdel network_sa
groupdel: cannot remove the primary group of user 'qmf_xuliangwei'

#只有删除用户或者用户变更基本后,方可删除该组

7.1:使用gpasswd设置组密码

[root@qmf ~]# groupadd devops
[root@qmf ~]# gpasswd devops
Changing the password for group devops
New Password:
Re-enter new password:


7.2:使用newgrp命令切换基本组身份

#1.检查账户信息
[root@qmf ~]# useradd xuliangwei
[root@qmf ~]# id xuliangwei
uid=1069(xuliangwei) gid=5005(xuliangwei) groups=5005(xuliangwei)

#2.切换普通用户
[root@qmf ~]# su - xuliangwei

#3.创建新文件,查看文件的属主和属组
[xuliangwei@qmf ~]$ touch file_roots
[xuliangwei@qmf ~]$ ll
-rw-rw-r-- 1 xuliangwei xuliangwei 0 Jun 13 10:06 file_roots

#4.使用newgrp切换到devops组
[xuliangwei@qmf ~]$ newgrp devops
Password:

#5.创建文件,检查属主和属组
[xuliangwei@qmf ~]$ touch file_test
[xuliangwei@qmf ~]$ ll
-rw-rw-r-- 1 xuliangwei xuliangwei 0 Jun 13 10:06 file_roots
-rw-r--r-- 1 xuliangwei devops     0 Jun 13 10:08 file_test


8:用户提权

当我们使用普通用户执行/sbin目录下的命令时,会发现没有权限运行,如何才能不使用root用户直接登录系统?

1.su切换用户,使用普通用户登录,然后使用su命令切换到root。优点:简单 缺点:需要知道root密码

2.sudo提权,当需要使用root权限时进行提权,而无需切换至root用户,优点:安全、方便 缺点:复杂


su身份切换

在使用su切换前,我们需要了解一些预备知识,比如shell分类、环境变量配置文件有哪些


1.Linux Shell主要分为如下几类

交互式shell,等待用户输入执行的命令(终端操作,需要不断提示)

非交互式shell,执行shell脚本, 脚本执行结束后shell自动退出

登陆shell,需要输入用户名和密码才能进入Shell,日常接触的最多的一种

非登陆shell,不需要输入用户和密码就能进入Shell,比如运行bash会开启一个新的会话窗口


2.bash shell配置文件介绍(文件主要保存用户的工作环境)

个人配置文件:~/.bash_profile ~/.bashrc 。全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrc

profile类文件, 设定环境变量, 登陆前运行的脚本和命令。bashrc 类文件, 设定本地变量, 定义命令别名

PS: 如果全局配置和个人配置产生冲突,以个人配置为准。


3.登陆系统后,环境变量配置文件的应用顺序是?

登录式shell配置文件执行顺序: /etc/profile->/etc/profile.d/*.sh->~/.bash_profile->~/.bashrc->/etc/bashrc

非登陆式shell配置文件执行顺序: ~/.bashrc->/etc/bashrc->/etc/profile.d/*.sh

PS: 验证使用echo在每行添加一个输出即可


4.su命令切换用户有什么关系?

su - username属于登陆式shell,su username属于非登陆式shell,区别在于加载的环境变量不一样。

普通用户su -可以直接切换至root用户,但需要输入root用户的密码。

超级管理员root用户使用su - username切换普通用户不需要输入任何密码。

#1.普通用户使用su切换root
[x@node1 ~]$ su
密码:         #输入root的密码
[root@node1 x]# pwd
/home/x

#2.普通用户使用su -切换到root,会加载root的环境变量
[x@node1 ~]$ su -
密码:
[root@node1 ~]# pwd
/root

#3.以某个用户的身份执行某个服务,使用命令su -c username
[root@qmf ~]# su - x -c 'ifconfig'
[root@qmf ~]# su - x -c 'ls ~'

sudo提权

1.埋下提权种子

#1.快速配置sudo方式[先睹为快]
[root@node1 ~]# usermod qmf -G wheel
[root@node1 ~]$ sudo tail -f /var/log/secure    #sudo审计日志

#2.一般正常配置sudo方式
[root@www ~]# #visudo => vim /etc/sudoers
#1.用户名  2.主机名=(角色名)       4.命令名
qmf       ALL=(ALL)         /usr/bin/yum,/usr/sbin/useradd   #允许使用sudo执行命令
oldboy      ALL=(ALL)          NOPASSWD:/bin/cp, /bin/rm       #NOPASSWD不需要使用密码

2.提权使用呢?

#1.切换普通用户
[root@qmf ~]# su - xuliangwei

#2.检查普通用户能提权的命令
[xuliangwei@x ~]$ sudo -l
User x may run the following commands on this host:
    (ALL) ALL

#3.普通用户正常情况下是无法删除opt目录的
[x@x ~]$ rm -rf /opt/
rm: cannot remove `/opt: Permission denied

#4.使用sudo提权,需要输入普通用户的密码。
[x@x ~]$ sudo rm -rf /opt

3.提升的权限太大,仅开启某个命令的使用权限


使用sudo中自带的别名操作,将多个用户定义成一个组,这个组只有sudo认可

[root@qmf ~]# visudo  #也可以使用vi /etc/sudoers来配置
# 1.使用sudo定义分组,这个系统group没什么关系
User_Alias OPS = oldboy,alex
User_Alias DEV = qmf,py

# 2.定义可执行的命令组,便于后续调用
Cmnd_Alias NETWORKING = /sbin/ifconfig, /bin/ping
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum
Cmnd_Alias SERVICES = /sbin/service, /usr/bin/systemctl start
Cmnd_Alias STORAGE = /bin/mount, /bin/umount
Cmnd_Alias DELEGATING = /bin/chown, /bin/chmod, /bin/chgrp
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

# 3.使用sudo开始分配权限
OPS  ALL=(ALL) NETWORKING,SOFTWARE,SERVICES,STORAGE,DELEGATING,PROCESSES
DEV  ALL=(ALL) SOFTWARE,PROCESSES

#4.登陆对应的用户使用 sudo -l 验证权限
第二种方式:使用groupadd添加组,然后给组分配sudo的权限,如果有新用户加入,直接将用户添加到该组.

#4.1.添加两个真实的系统组,  group_dev group_op
[root@www ~]# groupadd group_dev
[root@www ~]# groupadd group_op

#4.2.添加两个用户,      group_dev(user_a  user_b)   group_op(user_c  user_d)
[root@www ~]# useradd user_a -G group_dev
[root@www ~]# useradd user_b -G group_dev
[root@www ~]# useradd user_c -G group_op
[root@www ~]# useradd user_d -G group_op

#4.3.记得添加密码
[root@www ~]# echo "1" | passwd --stdin user_a
[root@www ~]# echo "1" | passwd --stdin user_b
[root@www ~]# echo "1" | passwd --stdin user_c
[root@www ~]# echo "1" | passwd --stdin user_d

#4.4.在sudo中配置规则
[root@www ~]# visudo
    Cmnd_Alias NETWORKING = /sbin/ifconfig, /bin/ping
    Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum
    Cmnd_Alias SERVICES = /sbin/service, /usr/bin/systemctl start
    Cmnd_Alias STORAGE = /bin/mount, /bin/umount
    Cmnd_Alias DELEGATING = /bin/chown, /bin/chmod, /bin/chgrp
    Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
    %group_dev ALL=(ALL) SOFTWARE
    %group_op ALL=(ALL) SOFTWARE,PROCESSES

#4.5.检查sudo是否配置有错
[root@www ~]# visudo -c
/etc/sudoers: parsed OK

#4.6.检查user_a,和user_d的sudo权限
[user_a@www ~]$ sudo -l
User user_a may run the following commands on www:
    (ALL) /bin/rpm, /usr/bin/yum
[user_d@www ~]$ sudo -l
User user_d may run the following commands on www:
    (ALL) /bin/rpm, /usr/bin/yum, /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

4.sudo命令的执行流程:

1) 普通用户执行sudo命令时, 会检查/var/db/sudo是否存在时间戳缓存

2) 如果存在则不需要输入密码, 否则需要输入用户与密码

3) 输入密码会检测是否该用户是否拥有该权限

4) 如果有则执行,否则报错退出

image.png



sudo不支持系统内置命令


“Linux用户的基本操作” 的相关文章

Linux特殊权限

1.特殊权限概述权限有 r(读)、w(写)、 x(执行)这三种普通权限,在査询系统文件权限时会发现出现了一些其他权限字母,如:[root@qmf ~]# ll /usr/bin/passwd -rwsr-xr-x. 1 root ...

rpm包管理

rpm包管理

RPM基础概述RPM全称RPM Package Manager缩写,由红帽开发用于软件包的安装,升级卸载与查询rpm包的命名规则一个rpm软件包的命名规则。bash-4.2.46-28.el7.x86_64.rpmname: 软件包名称version: 版本号, 主版本, 重大更新. 次版本, 子...

find文件查找

find查找find命令可以根据不同的条件来进行查找文件,例如:文件名称、文件大小、文件修改时间、属主属组、权限、等等方式。同时find命令是Linux下必须掌握的。find 命令的基本语法如下命令路径选项表达式动作find[path...][options][expression][action]...

NFS文件共享存储

NFS文件共享存储

NFS基本概述NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分...

Shell介绍(二)函数,数组

函数命令的集合 完成特定功能的代码块模块化 复用函数和变量类似 只有先定义才可以调用,如果只定义不调用 则不会执行函数的定义和调用三种方法:[root@web scripts]# cat fun.sh #!/bin/sh test1(){   ...

Shell介绍(四)条件表达式,字符串比对

条件表达式[ ]======test   []常用[ -f file ] 文件是否存在 且为普通文件 重点[ -e file ] 文件存在则为真[ -d file ] 目录存在则为真 重点[ -x file ] 文件有执行权限则为真[ -w file ] 文件可写则为真[...