linux笔记
特殊权限
suid
只要用户对设有 SUID 的文件有执行权限,那么当用户执行此文件时,会以文件属主的身份去执行此文件
passwd
默认就是带S位的,因为普通用户可以修改自己的密码,密码是保存在/etc/shadow,而这个文件是属于root的,并且其他人是不允许修改的。
sgid
1.对于二进制命令来说,sgid的功能和suid基本一样,只不过一个是设置文件属主的权限,一个是设置属组的权限,和9位基本rwx那个理解概念一样。
2. suid是获得文件所有者的权限,sgid是获得文件所属组的权限
3. sgid主要用于文件夹,为某个目录设置sgid之后,在该目录中的创建的文件,都以(目录的属组)权限为准,而不属于创建该文件的用户权限,这就实现了多个用户,可以共享一个目录的作用。
sbit的作用
但是看到了一个特殊权限t 一句话总结。 当目录有了粘滞位特殊权限,这个目录除了root用户特殊以外,任何用户都只能删除、移动自己的创建的文件,而不能影响到其他人。
ssh服务
[root@c1 study19-1]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 795/sshd
tcp6 0 0 :::22 :::* LISTEN 795/sshd
systemctl start/stop/restart/status 服务名称
[root@c1 study19-1]# systemctl status sshd
● sshd.service - OpenSSH server daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2023-08-07 18:27:32 CST; 1 weeks 4 days ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 795 (sshd)
Tasks: 1
Memory: 5.2M
CGroup: /system.slice/sshd.service
└─795 /usr/sbin/sshd -D
systemctl stop sshd.service
systemctl start sshd
systemctl restart sshd
network服务
是网络服务,不能停
systemctl stop network 停止
systemctl status network 查看状态
systemctl start network 启动
systemctl restart 重启
CenOS 6时代,用service管理服务
service命令用于对系统服务进行管理,比如启动(start)、停止(stop)、重启(restart)、重新加载配置(reload)、查看状态(status)等。
# service mysqld 指令 #打印指定服务mysqld的命令行使用帮助。
# service mysqld start #启动mysqld
# service mysqld stop #停止mysqld
# service mysqld restart #重启mysqld (先停止,再运行 ,进程会断开,id会变化)
# service mysqld reload # 当你修改了mysqld程序的配置文件,需要重新加载该配置文件,而不重启
chkconfig: 指定服务是否开机启动
具体用法,比如sshd服务,你也可以更换为其他的内置服务名,即可管理.
- 启动sshd,systemctl start sshd
- 关闭,systemctl stop sshd
- 重启,systemctl restart sshd
- 重新加载 systemctl reload sshd
- 开机自启 ,systemctl enable sshd
- 禁止开机自启,systemctl disbale sshd
- 查看,sshd服务,是否开机自启,systemctl is-enabled sshd.service
列出系统中,所有的内置服务,名字,和状态
列出所有的系统服务
systemctl list-units --type service --all
运行中
挂掉的
全列出来
systemctl list-units --type service
systemctl list-units --type service --all |grep ssh
[root@yuanlai-0224 ~]# systemctl is-enabled sshd.service
enabled
修改虚拟机的IP地址为桥接,然后将IP地址改为动态获取
[root@c1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
#BOOTPROTO="none"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="f07fb1d2-3162-4d81-b5aa-dc17c54db4d1"
DEVICE="ens33"
ONBOOT="yes"
#IPADDR="172.16.5.51"
#PREFIX="24"
#NETMASK="255.255.255.0"
#GATEWAY="172.16.5.2"
#DNS1="172.16.5.2"
#DOMAIN="114.114.114.114"
IPV6_PRIVACY="no"
systemctl restart network
ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:14:78:ee txqueuelen 1000 (Ethernet)
RX packets 38275 bytes 14364828 (13.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 78030 bytes 7744284 (7.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
需要关闭,禁用centos7在图形化下,设置的网络服务,同时管理wifi和有线
服务名 NetworkManager
systemctl stop NetworkManager # 关闭
systemctl is-enabled NetworkManager # 查看是否开机自启
# 禁止开机运行
systemctl disable NetworkManager
scp
用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。
[root@c1 ~]# scp t2.txt root@192.168.1.11:/root/
root@192.168.1.11's password:
t2.txt 100% 40 6.3KB/s 00:00
相对应的,也可以从远程主机向本地复制文件,但不常用。
[root@c1 ~]# scp root@192.168.1.11:/root/t2.txt /opt/
root@192.168.1.11's password:
t2.txt
-P:指定远程主机的端口号;
-r:以递归方式复制。
[root@c1 ~]# ll -d test2/
drwxr-xr-x 2 root root 22 Jul 29 10:30 test2/
[root@c1 ~]# scp -r test2 root@192.168.1.11:/root/
root@192.168.1.11's password:
test1.sh
timedatectl
是CentOS操作系统中用于管理和控制系统日期和时间的命令
[root@yuanlai-0224 ~]# timedatectl --help
timedatectl [OPTIONS...] COMMAND ...
Query or change system time and date settings.
-h --help Show this help message
--version Show package version
--no-pager Do not pipe output into a pager
--no-ask-password Do not prompt for password
-H --host=[USER@]HOST Operate on remote host
-M --machine=CONTAINER Operate on local container
--adjust-system-clock Adjust system clock when changing local RTC mode
指令
Commands:
status Show current time settings 查看当前状态
set-time TIME Set system time 设置当前的时间
set-timezone ZONE Set system time zone 设置当前的时区
list-timezones Show known time zones 查看系统支持哪些时区
set-local-rtc BOOL Control whether RTC is in local time
set-ntp BOOL Control whether NTP is enabled
[root@yuanlai-0224 ~]# timedatectl set-time '10:00'
[root@yuanlai-0224 ~]# timedatectl set-time '2018-11-8 10:00'
查看系统支持多少个时区
[root@yuanlai-0224 ~]# timedatectl list-timezones | wc -l
425
找出关于上海的时区,具体名字
[root@yuanlai-0224 ~]# timedatectl list-timezones | grep -i 'shanghai'
Asia/Shanghai
[root@yuanlai-0224 ~]# timedatectl set-timezone Asia/Shanghai
[root@yuanlai-0224 ~]#
[root@yuanlai-0224 ~]#
[root@yuanlai-0224 ~]# timedatectl status
Local time: 四 2018-11-08 10:02:39 CST
Universal time: 四 2018-11-08 02:02:39 UTC
RTC time: 四 2018-11-08 02:02:40
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: n/a
[root@yuanlai-0224 ~]#
crontab
编辑模式,用法与vim一样,格式要注意:
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * command to be executed
[root@c1 ~]# crontab -e
[root@c1 ~]# crontab -l
52 16 * * * touch /mnt/text1653.txt
自建时间服务器
[root@c1 ~]# yum install ntp -y
[root@c1 ~]# ls /usr/lib/systemd/system/ |grep ntp
ntpdate.service
ntpd.service
[root@c1 ~]# vim /etc/ntp.conf
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
driftfile /var/lib/ntp/drift
# 添加ntp的运行日志
logfile /var/log/my_ntp.log
# 记录程序的运行进程号的,可以用于写脚本,读取这个文件,就找到了程序的进程id
pidfile /var/run/ntpd.pid
restrict default nomodify notrap nopeer noquery
server ntp.aliyun.com iburst prefer
server cn.pool.ntp.org iburst
修改机器的时间为错误时间
timedatectl set-time '2018-11-8 10:00'
systemctl start ntpd
systemctl status ntpd
查看ntp是否和上游服务器同步
ntpstat
unsynchronised
polling server every 64 s
[root@yq ~]# date -s '2018-08-08'
2018年 08月 08日 星期三 00:00:00 CST
[root@yq ~]# date
2018年 08月 08日 星期三 00:00:03 CST
[root@yq ~]# ntpdate 192.168.1.10
19 Aug 17:37:46 ntpdate[18357]: step time server 192.168.1.10 offset 158780253.545798 sec
[root@yq ~]# ntpdate 192.168.1.10
19 Aug 17:41:18 ntpdate[18369]: adjust time server 192.168.1.10 offset -0.006780 sec
[root@yq ~]# date
2023年 08月 19日 星期六 17:41:19 CST
标准输入
[root@c1 ~]# cat > 0819.txt << EOF
> fdsjkfjdsk
> 121231
> fdsfdsf
> 0819
> EOF
[root@c1 ~]# cat > 0820.txt << AAA
> fdsfj
> erewrew
> rewrew
> fdsfdsf
> fdsfdsf
标准输出
[root@c1 ~]# ll >> /tmp/0819.log
标准错误输出的重定向
[root@c1 ~]# ll fsdfdsfdsj >> /tmp/0819.log 2>&1
[root@c1 ~]# dsfdsf >> /tmp/0819.log 2>&1
[root@c1 ~]# tail /tmp/0819.log
-rw-r--r-- 1 root root 40 Aug 13 11:12 t2.txt
-rw-r--r-- 1 root root 40 Aug 13 14:31 t2.txt.bak
-rw-r--r-- 1 root root 43 Aug 13 11:12 t3.txt
-rw-r--r-- 1 root root 43 Aug 13 14:31 t3.txt.bak
drwxr-xr-x 2 root root 22 Jul 29 10:30 test2
-rw-r--r-- 1 root root 0 Jul 29 17:05 text1-new.txt
-rw-r--r-- 1 root root 0 Aug 13 14:31 text1-new.txt.bak
drwxr-xr-x 3 root root 42 Mar 28 14:24 yj
ls: cannot access fsdfdsfdsj: No such file or directory
-bash: dsfdsf: command not found