赞
踩
/etc/passwd
文件中保存的就是系统中所有的用户和用户的主要信息,这个文件的内容非常规律,每行代表一个用户。
每一行有七个字段,以:为分隔符,每个字段所代表的含义不同,以root这一行来做示例
/etc/shadow
是用户保存密码的文件,这个文件的每行代表一个用户,同样的也是以:为分隔符。
linux用户组的所有信息都存放在/etc/group
文件当中,也就是passwd文件中GID的来源。
分为四个字段,也是以:为分隔符
组用户的密码信息存储在/etc/gshadow
文件中。
文件中,每行代表一个组用户的密码信息,各行信息用 “:” 作为分隔符分为 4 个字段,每个字段的含义如下:
useradd
命令可以用来创建用户账号。
UID1-499是属于系统用户的。500以后可以分配给普通用户,一般我们新建用户默认是从1000开始的。
root用户的uid为0,如果创建一个uid为0的其他账号,其实就是root的别名账号,权限还是root。
useradd test #创建用户test
useradd -o -u 0 test1 #创建用户test1,指定uid为0,-o表示允许uid重复,-u指定uid
useradd test2 -g root #新建一个test2的用户,并加入到root组里,-g指定新建用户的组
groupadd
命令可以用来创建组。
groupadd a #创建一个a用户组
usermod
命令可以更改用户的各项信息
-l<帐号名称> #修改用户帐号名称。
-c<备注> #修改用户帐号的备注文字。
-g<群组> #修改用户所属的群组。
-G<群组> #修改用户所属的附加群组。
-d<登入目录> #修改用户登入时的目录。
-e<有效期限> #修改帐号的有效期限。
-f<缓冲天数> #修改在密码过期后多少天即关闭该帐号。
-L #锁定用户密码,使密码无效。
-s<shell> #修改用户登入后所使用的shell。
-u<uid> #修改用户ID。
-U #解除密码锁定。
例如:
usermod test -l newname #修改test用户名为newname
usermod test2 -d /home/test3 #修改test2用户的家目录
groupmod
命令可以更改组的各项信息
-g, --gid GID #将组 ID 改为 GID
-h, --help #显示此帮助信息并推出
-n, --new-name NEW_GROUP #改名为 NEW_GROUP
-o, --non-unique #允许使用重复的 GID
-p, --password PASSWORD #将密码更改为(加密过的) PASSWORD
-R, --root CHROOT_DIR #chroot 到的目录
-P, --prefix PREFIX_DIR #prefix directory where are located the /etc/* files
例如:
groupmod a -n b #修改a组名为b
userdel
命令可以删除用户,使用groupdel
命令可以删除用户组
userdel test #删除用户test
groupdel a #删除组a
passwd
命令用于修改或添加用户的密码,用法:passwd [user]
注意,当你以root用户登录时,你可以修改系统内任意用户的密码,且无需遵守密码复杂度要求。
当你以普通用户登录时,只能修改自己的密码,且必须遵守密码复杂度要求。
当passwd命令不跟用户名时,代表修改当前用户密码。
案例:
passwd test #修改test的密码
Centos网卡配置文件存储于/etc/sysconfig/network-scripts/ifcfg-[网卡名]
DEVICE="eth0" #网卡名
HWADDR="00:0C:29:FD:FF:2A" #mac地址
NM_CONTROLLED="yes" #network mamager的参数,实时生效,不需要重启
ONBOOT="yes" #开机自动链接
IPADDR=192.168.1.31 #ip地址
NETMASK=255.255.255.0 #子网掩码
GATEWAY=192.168.1.1 #网关
BOOTPROTO=static #静态ip
设置网卡状态命令:
第一种:
systemctl restart/stop/start/status network #重启/停止/启动/查看状态 (谨慎使用stop,否则ssh会断掉得从主机上进行启动了)
service network restart/stop/start/status #重启/停止/启动/查看状态(谨慎使用stop,否则ssh会断掉得从主机上进行启动了)
第二种:
nmcli命令是redhat7或者Centos7之后才有的命令
nmcli c show #查看状态
nmcli c up/down [网卡名] #启动/关闭
nmcli c reload [网卡名] #重启
nmcli c modify enp0s3 ipv4.addresses 192.168.0.62/24
nmcli c modify enp0s3 ipv4.gateway 192.168.0.1
nmcli c modify enp0s3 ipv4.dns 8.8.8.8
电脑想要访问网页,必要设定一个DNS服务器的IP(常见的有114.114.114.114等),这个DNS服务器负责将你输入的网址(如:www.baidu.com )转换为你的电脑可以识别的IP。经过这种转换,电脑才能访问网页。
Centos的DNS配置文件存储与/etc/resolv.conf
ip a #iproute2
ifconfig #属于net-tools工具链,起源于BSD的TCP/IP工具箱,但自2001年起,Linux社区已经对其停止维护。同时,一些 Linux 发行版比如 Arch Linux 和 CentOS/RHEL 7 则已经完全抛弃了 net-tools,只支持 iproute2 。
Ubuntu上的网卡配置文件存储于/etc/network/interfaces
其中主要参数:
# 若设置静态IP
auto [网卡名]
iface [网卡名] inet static
address 192.168.3.90 #ip地址
gateway 192.168.3.1 #网关
netmask 255.255.255.0 #子网掩码
# 若设置动态IP
auto [网卡名]
iface eth0 inet dhcp
/etc/init.d/networking restart #重启网卡
/etc/init.d/networking start #启动网卡
/etc/init.d/networking stop #关闭网卡 (谨慎关闭,会断开ssh)
DNS配置文件存储于/etc/resolv.conf
nameserver 114.114.114.114
kali的上网配置可以在图形化界面调试。设置->网络设置->手动
所谓运行级别,简单点来说,运行级别就是操作系统当前正在运行的功能级别。级别是从0到6,具有不同的功能。
Linux下的7个运行级别:
关机/重启命令:
init 0
init 6
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具。
root用户需要设置普通用户的sudo权限(就是哪些用户使用sudo,在/etc/sudoers
文件中添加可以执行的用户),设置之后,普通用户在命令前加sudo即可使用管理员权限执行改命令。
sudo
配置文件存在于/etc/sudoers
,root用户如想赋予普通用户sudo权限,则需要修改大概位于98行的内容:
97 ## Allow root to run any commands anywhere
98 root ALL=(ALL) ALL
99
100 ## Allows members of the 'sys' group to run networking, software,
101 ## service management apps and more.
102 # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
103
104 ## Allows people in group wheel to run all commands
105 %wheel ALL=(ALL) ALL
106
107 ## Same thing without a password
108 # %wheel ALL=(ALL) NOPASSWD: ALL
如果给test用户添加sudo权限:
test ALL=(ALL) ALL
如果给a用户组添加sudo权限: %a ALL=(ALL) ALL
sudo [command]
的形式,可以使sudo用户以root权限执行一些命令。第一次执行需要验证当前用户的密码,来判断当前帐号是否在sudo允许的列表中。
sudo -i
命令,可以使sudo用户切换为root用户。
在切换为root后,会切换到root的家目录,并完全使用root用户的环境。
切换root用户时会校验sudo用户的密码,来判断当前帐号是否在sudo允许的列表中。
sudo -s
命令,也可以使sudo用户切换为root用户。
切换用户后,不会切换目录,仍然使用sudo用户自己的环境,但是权限已经是root。
切换root用户时需要验证sudo用户自己的密码,来判断当前帐号是否在sudo允许的列表中。
su [username]
是切换用户的命令。它不局限于sudo用户使用,任何用户想切换到其他用户都可以使用这个命令。
切换用户时,需要验证要切换用户的密码。切换后,仍使用原来的环境变量。
su - [username]
是切换用户的命令。它不局限于sudo用户使用,任何用户想切换到其他用户都可以使用这个命令。
切换用户时,需要验证要切换用户的密码。切换后,仍使新用户的环境变量。
whoami
用于显示当前用户
ls -al
显示的列表,有七个字段,每个字段以空格为分隔
在第一个字段中,会出现这样的形式drwxr-xr-x.
共是11个字符。
第一个字符:
常见的有d
和-
两种形式,第一个字母为d
代表为目录,为-
代表为文件。
此外还有其他形式:
-
:常规文件b
:块特殊文件c
:字符特殊文件C
:高性能(”连续数据“)文件d
:目录D
:门(Solaris 2.5及以上版本)l
:符号链接M
:离线(”前已“)文件(Cray DMF)n
:网络专用文件(HP-UX)p
:FIFO(命名管道)P
:断开(Solaros 10及以上)s
:套接字?
:其他文件第二到第十个字符:共有9个字符,每三个为一组。代表属主
、属组
、其他人的权限
。常见的权限有r
w
x
,分别为读权限、写权限、执行权限
如一个文件这一部分字段表达为-rwxrw-r--.
。
r
权限r
与w
权限。x
权限在第四、第七和第十个字符中,除却常见的x执行权限外,还有其他情况:
第十一个字符的含义:
.:没有任何其他替代访问方法的SELinux安全上下文(没有设置ACL)
+:具有任何其他组合访问方法的SELinux安全上下文(设置了ACL)
chown
命令用于设置文件所有者
用法:chown [-R] [username]:[groupname] [filename]
案例:
chown farmsec1:farmsec 1.txt
chown -R farmsec1:farmsec farm #-R 递归,farm目录及其下所有目录、文件
chmod
命令用来变更文件或目录的权限。用法:chmod [-R] 755 filename
案例:
chmod 755 1.txt
chmod 777 1.txt
chmod -R 目录名 #使用-R参数代表递归,将目录以下所有文件都赋予同样的权限。
权限用数字421表示:
r=4(可读) w=2(可写) x=1(执行)
该命令也可直接添加或删除某种权限 用法:chmod +x filename
案例:
chmod +x farm.txt #给三个权限范围都设置x可执行
chmod -x farm.txt
chmod a+x farm.txt
chmod g-x farm.txt
chmod a+r farm.txt
chmod ug=rwx,o=x farm.txt
参数释义:
crontab
被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
crontab -e
编辑当前用户的cron表
crontab -l
查看当前用户的cron表
crontab -r
删除当前用户的cron表
crontab
命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。
/var/spool/cron/
目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名/etc/crontab
这个文件负责调度各种管理和维护任务。/etc/cron.d/
这个目录用来存放任何要执行的crontab文件或脚本。/etc/cron.hourly
、/etc/cron.daily
、/etc/cron.weekly
、/etc/cron.monthly
目录中,让它每小时/天/星期、月执行一次。我们使用crontab -l的命令是无法查看到其他用户的计划任务的(root可以)。可以使用如下命令进行查看:crontab -u <user> -l
编辑cron的格式为:分 时 日 月 周 命令
* #代表任意时间
, #代表不联系的时间点,2,3 表示2和3都行
- #代表连续的时间段,比如2-4表示2,3,4
*/n #代表每隔单位时间
案例1:每隔一分钟往1文本里输入一条hello 的信息
*/1 * * * * echo "hello">> /root/1
案例2:每小时的第一分钟执行一次
1 * * * * echo "hello">> /root/1
案例3:每小时的第一分钟跟第二分钟执行
1,2 * * * * echo "hello">> /root/1
其他案例:
实例1:每1分钟执行一次myCommand * * * * * myCommand 实例2:每小时的第3和第15分钟执行 3,15 * * * * myCommand 实例3:在上午8点到11点的第3和第15分钟执行 3,15 8-11 * * * myCommand 实例4:每隔两天的上午8点到11点的第3和第15分钟执行 3,15 8-11 */2 * * myCommand 实例5:每周一上午8点到11点的第3和第15分钟执行 3,15 8-11 * * 1 myCommand 实例6:每晚的21:30重启smb 30 21 * * * /etc/init.d/smb restart 实例7:每月1、10、22日的4 : 45重启smb 45 4 1,10,22 * * /etc/init.d/smb restart 实例8:每周六、周日的1 : 10重启smb 10 1 * * 6,0 /etc/init.d/smb restart 实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb 0,30 18-23 * * * /etc/init.d/smb restart 实例10:每星期六的晚上11 : 00 pm重启smb 0 23 * * 6 /etc/init.d/smb restart 实例11:每一小时重启smb 0 */1 * * * /etc/init.d/smb restart 实例12:晚上11点到早上7点之间,每隔一小时重启smb 0 23-7/1 * * * /etc/init.d/smb restart
在systemctl的命令中,enable
代表开机自启,disable
代表取消开机自启。
如想设置某服务开机自启,可使用systemctl enable [服务名]
案例:
systemctl enable nginx
/etc/rc.d/rc.local
用于添加开机启动命令,/etc/rc.local
是/etc/rc.d/rc.local
的软链接,软连接相当于windows的快捷方式。
系统开机后会自动执行/etc/rc.local
,换句话说,只要将你想执行的命令写入这个文件,vi /etc/rc.local
,就可以做到开机自动执行。
如我们在此处写入echo 'hello' >> /root/hello
。
如果你是第一次使用这个文件,需要对其加上执行权限。chmod +x /etc/rc.local
然后重启服务器,我们会发现写入/etc/rc.local
的命令在开机时被执行了。
备注:
老版本的系统中,控制服务启动的命令还有如下的内容:
chkconfig
/etc/init.d/
/etc/rc.d/init.d
配置的方法可参考网上详细教程。
从centos7开始,系统的服务控制开始由systemctl替换早起版本的chkconfig与service的指令。
systemctl的服务的位置位于/usr/lib/systemd/system中。
所以未来在应急响应的排查中,需要排查的目录需要依照操作系统的版本进行针对性的排查。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。