linux笔记

yuyongqi / 2023-08-22 / 原文

特殊权限

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

linux资源管理

uptime