1.linux系统管理命令shutdown源码linux系统管理命令
2.omv 家用 nas 搭建[4],码安 jellyfin 部署
3.linuxlocate
linux系统管理命令shutdown源码linux系统管理命令
linux系统管理--htop命令的码安使用?1、Htop是码安一个非常高级的交互式的实时linux进程监控工具。它和top命令十分相似,码安但是码安它具有更丰富的特性,例如用户可以友好地管理进程,码安知识付费平台 源码快捷键,码安垂直和水平方式显示进程等等。码安Htop是码安一个第三方工具,它不包含在linux系统中,码安你需要使用YUM包管理工具去安装它。码安
2、码安CentOS安装htop
#yum-yinstallhtop
3、码安截图
如何在linux上用命令实现用户和组的码安管理?
Linux上用命令实现本地用户和组的管理
本地用户和组:管理文件和进程等等
本地用户和组:
1)root:超级管理员系统创建的第一个账户
特点:
id为:0
家目录:/root
具有系统的完全控制权:小心使用。
#id
uid=0(root)gid=0(root)groups=0(root)context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c
#
2)普通用户:不具有管理员权限
特点:
id范围:
=id=
家目录:/home/用户名
#idstudent
uid=(student)gid=(student)groups=(student),码安(wheel)
#
3)服务用户:为服务提供权限
特点:
id范围:
0id
家目录:应用程序服务目录
#idapache
uid=(apache)gid=(apache)groups=(apache)
#
如果是yum,rpm安装的软件:由rpm包中的脚本创建服务账户
Includeconf.modules.d/*.conf
#
#Ifyouwishpose 的部署。
从 docker hub 网站 复制命令 docker pull linuxserver/jellyfin,趋势图 源码 副图使用 ssh 连接终端,复制命令并运行,等待镜像下载完成。下载后执行 docker image list,应该会看到相应镜像。
打开 portainer,选择侧边栏 stacks ,点击 add stack 按钮即可创建 portainer stack。怎么样挂源码
portainer stack 使用的是 docker-compose 格式的部署脚本,需要从 docker hub 中的 jellyfin 文档复制并且加以修改。文档中代码如下:
需要修改的地方有以下几个:
根据 linuxserver 文档所述,使用 PUID 和 PGID,可以将容器的内部用户映射到宿主机上的用户,这样能够避免 root 权限配置及容器映射卷内的文件管理问题。
使用 ssh 连接至 omv 终端后,输入id admin 命令获取当前 PUID 以及 PGID,医院源码带小程序如下图所示,此时的 PUID = ,PGID = 。
根据当前时区位置修改为TZ=Asia/Shanghai
docker 会将宿主机的文件路径映射为容器中的文件路径。在 docker-compose 中,例如/path/to/appdata/config:/config 冒号前的则为宿主机路径,冒号后的为映射的路径。
首先在 omv 中通过添加共享文件夹来创建宿主机的手游源码吾爱破解目的文件夹,如下图所示:
在添加时,设备指的是共享文件夹存储对应的硬盘,路径则是共享文件夹在硬盘上存储的相对位置。
创建成功后,在页面上显示的绝对路径即为所要的宿主机路径,如下图所示:
根据部署脚本代码,需要修改以下几个磁盘映射路径:
根据文档所述,主要需要调整以下端口:
实际上主要调整 端口即可。
当使用 intel 集显时,通常情况下在 debian 系统中会自动安装驱动,只需检查 /dev/dri 路径下是否存在 renderD 即可,只要存在则驱动已被安装,只需要挂载驱动即可
--device=/dev/dri:/dev/dri
使用英伟达显卡时,需要先 安装 Nvidia-docker 容器,之后重新启动容器,并在启动项中增加 --runtime=nvidia ,并且增加环境变量 NVIDIA_VISIBLE_DEVICES=all 即可。
经过上述调整,修改后的 docker-compose 大致如以下所示:
设置完点击Deploy the stack 按钮,如果部署脚本没有错误,应该会跳回 stacks 页面。同时使用 http 协议访问 jellyfin 之前设置的 web ui 对应端口,应该能够弹出 jellyfin 登陆界面,证明部署成功:
点击控制台->媒体库->添加媒体库,并将前文挂载的媒体库按照类型进行添加。
添加后点击扫描所有媒体库,系统会自动进行扫描和索引。
intel 核显勾选Video Acceleration API(VAAPI) 选项,并且设备选择 /dev/dri/renderD 即可,将硬件解码部分所有都勾选上,系统遇到合适编码时,将会自动使用硬件进行解码。
至此,jellyfin 基本设置完毕,可以尝试播放媒体库中的视频判断是否成功运行。
这次主要实现了直接部署 jellyfin 在 portainer 上,并且进行了 jellyfin 的基础设置。
linuxlocate
linuxæ¥è¯¢å½ä»¤ï¼1.find
findæ¯æ常è§åæ强大çæ¥æ¾å½ä»¤ï¼ä½ å¯ä»¥ç¨å®æ¾å°ä»»ä½ä½ æ³æ¾çæ件ã
2.locate
locateå½ä»¤å ¶å®æ¯find-nameçå¦ä¸ç§åæ³ï¼ä½æ¯è¦æ¯åè å¿«å¾å¤ï¼åå å¨äºå®ä¸æç´¢å ·ä½ç®å½ï¼èæ¯æç´¢ä¸ä¸ªæ°æ®åºã
3.whereis
whereiså½ä»¤åªè½ç¨äºç¨åºåçæç´¢ï¼èä¸åªæç´¢äºè¿å¶æ件ï¼åæ°-bï¼ãman说ææ件ï¼åæ°-mï¼åæºä»£ç æ件ï¼åæ°-sï¼ã
4.which
whichå½ä»¤çä½ç¨æ¯ï¼å¨PATHåéæå®çè·¯å¾ä¸ï¼æç´¢æ个系ç»å½ä»¤çä½ç½®ï¼å¹¶ä¸è¿å第ä¸ä¸ªæç´¢ç»æã
5.type
typeå½ä»¤å ¶å®ä¸è½ç®æ¥æ¾å½ä»¤ï¼å®æ¯ç¨æ¥åºåæ个å½ä»¤å°åºæ¯ç±shellèªå¸¦çï¼è¿æ¯ç±shellå¤é¨çç¬ç«äºè¿å¶æ件æä¾çã
linuxä¸cè¯è¨åºå½æ°ç®å½ï¼
ä¸è¬æ¥è¯´æ¯æ¾å¨/usr/includeç®å½ä¸çï¼
ä½æ¯è¿ä¸ªå¹¶ä¸å±éä¹æ¯å¯æ§çï¼å¦ææ们è¿è¡å¼åè¿ç¨ä¸ï¼å°±ä¼å¨å æ ¸çåºå½æ°æ件ç®å½ï¼
ä¾å¦å¨:/XXX/XXX/linux-X.X/include
æä»¥æ ¹æ®ä¸åçæ åµï¼å¤´æ件åæ¾çç®å½ä¹æ¯ä¸åçï¼å ·ä½éè¦å¯ä»¥æ ¹æ®locateågrepå½ä»¤è¿è¡æ¥è¯¢ã
å¦ä½å¨linuxä¸ç¨å½ä»¤å®ç°ç¨æ·åç»ç管çï¼
Linuxä¸ç¨å½ä»¤å®ç°æ¬å°ç¨æ·åç»ç管ç
æ¬å°ç¨æ·åç»ï¼ç®¡çæ件åè¿ç¨çç
æ¬å°ç¨æ·åç»ï¼
1ï¼root:è¶ çº§ç®¡çåç³»ç»å建ç第ä¸ä¸ªè´¦æ·
ç¹ç¹ï¼
id为:0
家ç®å½ï¼/root
å ·æç³»ç»çå®å ¨æ§å¶æ:å°å¿ä½¿ç¨ã
#id
uid=0(root)gid=0(root)groups=0(root)context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c
#
2ï¼æ®éç¨æ·ï¼ä¸å ·æ管çåæé
ç¹ç¹ï¼
idèå´ï¼
=id=
家ç®å½ï¼/home/ç¨æ·å
#idstudent
uid=(student)gid=(student)groups=(student),(wheel)
#
3ï¼æå¡ç¨æ·ï¼ä¸ºæå¡æä¾æé
ç¹ç¹ï¼
idèå´ï¼
0id
家ç®å½ï¼åºç¨ç¨åºæå¡ç®å½
#idapache
uid=(apache)gid=(apache)groups=(apache)
#
å¦ææ¯yumï¼rpmå®è£ ç软件ï¼ç±rpmå ä¸çèæ¬å建æå¡è´¦æ·
Includeconf.modules.d/*.conf
#
#Ifyouwishhttpdtorunasadifferentuserorgroup,youmustrun
#httpdasrootinitiallyanditwillswitch.
#
#User/Group:Thename(or#number)oftheuser/grouptorunhttpdas.
#Itisusuallygoodpracticetocreateadedicateduserandgroupfor
#runninghttpd,aswithmostsystemservices.
#
Userapache
Groupapache
#'Main'serverconfiguration
#
æ¬å°ç»ï¼
1ï¼ä¸»ç»ï¼ä¸ä¸ªç¨æ·ä¸å®è¦å±äºæ个主ç»ä¸ãå½äºç¨æ·å¨å建æ件æ¶ï¼ç»æ件çå½å±ç»
2ï¼ä»å±ç»ï¼ç¨æ·å®¹å¨ï¼ç»ç»å管çç¨æ·æé管æ§
ä½ç¨ï¼
æ件ï¼
è¿ç¨ï¼
$ps-ux
USERPID%CPU%MEMVSZRSSTTYSTATSTARTTIMECOMMAND
student..?Ss::/usr/lib/system
student..?S::(sd-pam)
student..?S::sshd:student@p
student..pts/0Ss::-bash
student..?D::sshd:student@p
student..pts/1Ss::-bash
student..pts/1S::/bin/bash
student..pts/1R+::ps-ux
$
è´¦æ·æ件ï¼
1ï¼/etc/passwd:ä¿åç¨æ·ä¿¡æ¯
#cat/etc/passwd|grepstudent
student:x:::StudentUser:/home/student:/bin/bash
ç¨æ·åå¯ç uid主ç»IDæ述家ç®å½ç»å½shell
#
#cat/etc/passwd|grep-wroot:x
root:x:0:0:root:/root:/bin/bash
#
#cat/etc/passwd|grepapache
apache:x:::Apache:/usr/share/httpd:/sbin/nologin
æå¡è´¦å·æ æ³ç»å½ç³»ç»
#
2./etc/shadowï¼ä¿åç¨æ·å¯ç çHASHï¼å¯ç çæææ§ä¿¡æ¯ï¼å¯ç ä¿®æ¹æ¶é´ï¼è´¦æ·æææã
#
#ls-l/etc/shadow
----------.1rootrootMar:/etc/shadow
#
#
#cat/etc/shadow|grepstudent
student:$6$8oIjLCsc$/n1iQXYh1E6.uOEuJKgioqAtmqm2TQmkJGF2RwyteIr1tIfrPdiRYgWe6Sjen5/eMij2uHM/a1tue/QRlo3X::0::7:::
#
å¯ç çHASH:sha
8oIjLCsc$/n1iQXYh1E6.uOEuJKgioqAtmqm2TQmkJGF2RwyteIr1tIfrPdiRYgWe6Sjen5/eMij2uHM/a1tue/QRlo3X
:天æ°å¯ç æåä¸æ¬¡ä¿®æ¹çæ¶é´ä»--+天ä¹åé£ä¸å¤©
0ï¼å¯ç æå°ä½¿ç¨å¤©æ°0没æéå¶ç¨æ·éæ¶å¯ä»¥æ¹å¯ç
ï¼å¤©æ°ï¼å¯ç æ大修æ¹æ¶é´æ°¸ä¹ å¤å¹´
7ï¼warningè¦åæ¶é´ï¼å½å¯ç å¿«å°æåä¿®æ¹æ¶é´å7天ï¼éç¥ç¨æ·ä¿®æ¹ã
::天æ°å¤±ææ¶é´inactiveç¨æ·å¯ç è¿äºæåä¿®æ¹æ¶é´ï¼æªæ¹åå¯ç ï¼åè¿å¤å°å¤©ï¼è´¦æ·å°è¢«éå®
::è´¦æ·æææ
å建ç¨æ·åç»ï¼
å建æ¶ï¼æ²¡æå¯ç ï¼
#useraddzhangsan
#useraddlisi
#idzhangsan
uid=(zhangsan)gid=(zhangsan)groups=(zhangsan)
#idlisi
uid=(lisi)gid=(lisi)groups=(lisi)
#
æ æ³ç»å½ï¼ä¸PAMæå ³
$
$su-zhangsan
Password:
Password:
su:Authenticationfailure
$
设置å¯ç ï¼
#
#cat/etc/passwd|grepzhangsan
zhangsan:x::::/home/zhangsan:/bin/bash
#cat/etc/shadow|grepzhangsan
zhangsan:!!::0::7:::#!!æªè®¾ç½®å¯ç
#
#passwdzhangsan
Changingpasswordforuserzhangsan.
Newpassword:
BADPASSWORD:Thepasswordisshorterthan8characters
Retypenewpassword:
passwd:allauthenticationtokensupdatedsuccessfully.
#
#
#cat/etc/shadow|grepzhangsan
zhangsan:$6$3wxuXomVbQwQcK$oQW6injgldxa2N/Pt4tCPDVRqWRVGw.UNZdxE4R0nhEt8K/3UDKzxap6ReIReEvDpG.GdwjpMiiDh7.f6DJNQ0::0::7:::
#
chageå¯ä»¥æ¥çç¨æ·å¯ç å±æ§
#chage-lzhangsan
Lastpasswordchange:Mar,
Passwordexpires:never
Passwordinactive:never
Accountexpires:never
Minimumnumberofdaysbetweenpasswordchange:0
Maximumnumberofdaysbetweenpasswordchange:
Numberofdaysofwarningbeforepasswordexpires:7
#
å建ç»ï¼ä»å±ç»
#
#groupaddit
#
#
#groupaddsales
#
#
#
#cat/etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x::student
cdrom:x::
mail:x::postfix
man:x::
dialout:x::
floppy:x::
games:x::
tape:x::
video:x::
ftp:x::
lock:x::
audio:x::
users:x::
nobody:x::
dbus:x::
utmp:x::
utempter:x::
input:x::
kvm:x::
render:x::
systemd-journal:x::
systemd-coredump:x::
systemd-resolve:x::
tss:x::
polkitd:x::
rpc:x::
unbound:x::
ssh_keys:x::
sssd:x::
setroubleshoot:x::
rpcuser:x::
insights:x::
cockpit-ws:x::
sshd:x::
chrony:x::
tcpdump:x::
student:x::
printadmin:x::
libstoragemgmt:x::
slocate:x::
postdrop:x::
postfix:x::
apache:x::
zhangsan:x::
lisi:x::
it:x::ç»æåå表
sales:x::
#
#idstudent
uid=(student)gid=(student)groups=(student),(wheel)
#
å°ç¨æ·æ·»å è¿ç»ï¼zhangsan,å å ¥itç»ï¼lisiï¼salesç»
#idstudent
uid=(student)gid=(student)groups=(student),(wheel)
#usermod-aGitzhangsan
#
#
#usermod-aGsaleslisi
#
#
#idzhangsan
uid=(zhangsan)gid=(zhangsan)groups=(zhangsan),(it)
#idlisi
uid=(lisi)gid=(lisi)groups=(lisi),(sales)
#
å é¤ç¨æ·ï¼
#useraddandy
é»è®¤å é¤ï¼ä¿çç¨æ·çæ件ï¼
#
#userdelandy
#
#
#useraddandy#é建andyä¼ä¸ä¸æ ·ï¼uidä¼ä¸å
useradd:warning:thehomedirectoryalreadyexists.
Notcopyinganyfilefromskeldirectoryintoit.
Creatingmailboxfile:Fileexists
#
#useradduser1
#useradduser2
#idandy
uid=(andy)gid=(andy)groups=(andy)
#userdel-rany
userdel:user'any'doesnotexist
#
#userdel-randy#ä¸ä¿çç¨æ·çæ件ã家ç®ï¼é®ç®±æ件ï¼skelæ件é½ä¼
#
#
#idandy
id:âandyâ:nosuchuser
#useraddandy
#idandy
uid=(andy)gid=(andy)groups=(andy)
#
ä»ç»ä¸ç§»é¤ç¨æ·ï¼
#
#idzhangsan
uid=(zhangsan)gid=(zhangsan)groups=(zhangsan),(it)#zhangsan主ç»ï¼itä»å±ç»
#
å½ä»¤ï¼
#gpasswd-dzhangsanit
Removinguserzhangsanfromgroupit
#
#
#idzhangsan
uid=(zhangsan)gid=(zhangsan)groups=(zhangsan)
#
#
#usermod-aGitzhangsan
#
#
#idzhangsan
uid=(zhangsan)gid=(zhangsan)groups=(zhangsan),(it)
#
#
#
#groupszhangsan
zhangsan:zhangsanit
#
ç´æ¥ä¿®æ¹æ件ï¼
#vim/etc/group
#cat/etc/group|grepit:
it:x::
#
å é¤ç»ï¼
#groupaddtest
#
#
#groupdeltest
å建èªå®ä¹ç¨æ·åç»ï¼
å®éªï¼ç¨æ·åmary,æå®ç¨æ·id,家ç®å½/maryhome,ä¸ç¨ç»å½ç³»ç»æè¿°thisismaryuser
#
#useradd-u-d/maryhome-s/sbin/nologin-c"thisismary"mary
#
#idmary
uid=(mary)gid=(mary)groups=(mary)
#cat/etc/passwd|grepmary
mary:x:::thisismary:/maryhome:/sbin/nologin
#
#su-mary
Lastlogin:SunMar::CSTonpts/0
Thisaccountiscurrentlynotavailable.
#
å建èªå®ä¹ç»ï¼æå®ç»id
#groupadd-ggroup1
#cat/etc/group|grepgroup1
group1:x::
#
ç³»ç»ä¹å®¶Linuxæ示Unabletolocatepackage该å¦ä½å¤ç?æä¹åï¼
åå¼å§æ¥è§¦ubuntuçæåå¯è½ä¼æç §ä¸äºå ¥é¨æç« çæ¥éª¤æ´æ¹è½¯ä»¶æºï¼å¯æ¯æ¤æ¶å®è£ 软件çè¯ä¼åºç°unabletolocatepackageçé误ä¾å¦ï¼ä»£ç å¦ä¸ï¼username@ubuntuï¼~$sudoapt-getinstallmysql-servermysql-clientï¼»sudoï¼½passwordforusernameï¼ReadingpackagelistsDoneBuildingdependencytreeReadingstateinformationDoneEï¼Unabletolocatepackagemysql-serverEï¼Unabletolocatepackagemysql-clientusername@ubuntuï¼~$å ¶å®é®é¢åºå¨æ§è¡sudoapt-getinstallä¹åæ´æ¢äºè½¯ä»¶æºï¼ä½æ¯å´å¿äºupdateä¸äºï¼äºæ¯æ§è¡ä¸é¢çå½ä»¤ï¼ä»£ç å¦ä¸ï¼sudoapt-getupdateè¿æ ·ä¸æ¥é®é¢å°±è§£å³äºã