Linux sagir-us3.hostever.us 5.14.0-503.15.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Nov 28 07:25:19 EST 2024 x86_64
LiteSpeed
Server IP : 104.247.110.100 & Your IP : 216.73.216.54
Domains : 129 Domain
User : killarne
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
usr /
sbin /
Delete
Unzip
Name
Size
Permission
Date
Action
NetworkManager
3.71
MB
-rwxr-xr-x
2026-08-24 11:56
accessdb
15.42
KB
-rwxr-xr-x
2025-09-21 12:57
addgnupghome
3.01
KB
-rwxr-xr-x
2019-03-18 18:40
addpart
15.16
KB
-rwxr-xr-x
2026-04-04 22:15
adduser
137.84
KB
-rwxr-xr-x
2026-04-08 19:49
agetty
56.71
KB
-rwxr-xr-x
2026-04-04 22:15
alternatives
39.59
KB
-rwxr-xr-x
2025-03-12 10:43
anacron
39.52
KB
-rwxr-xr-x
2026-04-09 05:59
applygnupgdefaults
2.17
KB
-rwxr-xr-x
2018-01-25 15:06
arp
63.21
KB
-rwxr-xr-x
2024-10-02 19:02
arping
27.25
KB
-rwxr-xr-x
2025-10-20 12:44
arptables
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
arptables-nft
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
arptables-nft-restore
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
arptables-nft-save
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
arptables-restore
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
arptables-save
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
auditctl
51.59
KB
-rwxr-xr-x
2026-04-04 20:12
auditd
137.05
KB
-rwxr-xr-x
2026-04-04 20:12
augenrules
4.05
KB
-rwxr-xr-x
2026-04-04 20:12
aureport
120.3
KB
-rwxr-xr-x
2026-04-04 20:12
ausearch
120.27
KB
-rwxr-xr-x
2026-04-04 20:12
authconfig
18.69
KB
-rwxr-xr-x
2025-03-12 14:22
autrace
19.17
KB
-rwxr-x---
2026-04-04 20:12
avcstat
15.35
KB
-rwxr-xr-x
2025-03-12 23:36
badblocks
35.35
KB
-rwxr-xr-x
2025-09-21 15:03
biosdecode
28.06
KB
-rwxr-xr-x
2026-04-09 07:32
biosdevname
39.91
KB
-rwxr-xr-x
2024-10-02 20:13
blkdeactivate
15.97
KB
-r-xr-xr-x
2026-06-03 10:51
blkdiscard
23.2
KB
-rwxr-xr-x
2026-04-04 22:15
blkid
51.61
KB
-rwxr-xr-x
2026-04-04 22:15
blkzone
35.45
KB
-rwxr-xr-x
2026-04-04 22:15
blockdev
31.41
KB
-rwxr-xr-x
2026-04-04 22:15
bridge
130.95
KB
-rwxr-xr-x
2026-04-05 08:31
capsh
31.21
KB
-rwxr-xr-x
2026-05-20 10:00
cfdisk
96.34
KB
-rwxr-xr-x
2026-04-04 22:15
cgdisk
150.86
KB
-rwxr-xr-x
2022-01-30 23:44
chcpu
31.42
KB
-rwxr-xr-x
2026-04-04 22:15
chgpasswd
59.77
KB
-rwxr-xr-x
2026-04-08 19:49
chkconfig
43.78
KB
-rwxr-xr-x
2025-03-12 10:43
chpasswd
55.63
KB
-rwxr-xr-x
2026-04-08 19:49
chronyd
373.58
KB
-rwxr-xr-x
2026-04-09 00:49
chroot
39.55
KB
-rwxr-xr-x
2026-09-10 17:32
clamd
207.85
KB
-rwxr-xr-x
2026-08-10 15:25
clamonacc
196.23
KB
-rwxr-xr-x
2026-08-10 15:25
clock
59.77
KB
-rwxr-xr-x
2026-04-04 22:15
consoletype
15.28
KB
-rwxr-xr-x
2025-03-12 19:47
convertquota
69.01
KB
-rwxr-xr-x
2025-03-12 20:44
cracklib-check
15.11
KB
-rwxr-xr-x
2026-04-09 05:18
cracklib-format
255
B
-rwxr-xr-x
2026-04-09 05:18
cracklib-packer
15.11
KB
-rwxr-xr-x
2026-04-09 05:18
cracklib-unpacker
15.1
KB
-rwxr-xr-x
2026-04-09 05:18
create-cracklib-dict
994
B
-rwxr-xr-x
2015-08-18 18:41
crond
76.16
KB
-rwxr-xr-x
2026-04-09 05:59
csf
261.96
KB
-rwx------
2026-09-07 09:28
ctrlaltdel
15.19
KB
-rwxr-xr-x
2026-04-04 22:15
ctstat
23.59
KB
-rwxr-xr-x
2026-04-05 08:31
dcb
94.69
KB
-rwxr-xr-x
2026-04-05 08:31
ddns-confgen
27.26
KB
-rwxr-xr-x
2026-09-16 16:17
debugfs
233.03
KB
-rwxr-xr-x
2025-09-21 15:03
delpart
15.12
KB
-rwxr-xr-x
2026-04-04 22:15
depmod
165.57
KB
-rwxr-xr-x
2025-09-18 11:41
devlink
165.84
KB
-rwxr-xr-x
2026-04-05 08:31
dhclient
1.91
MB
-rwxr-xr-x
2026-04-09 06:48
dhclient-script
32.86
KB
-rwxr-xr-x
2026-04-09 00:58
dmfilemapd
23.3
KB
-r-xr-xr-x
2026-06-03 10:52
dmidecode
164.31
KB
-rwxr-xr-x
2026-04-09 07:32
dmsetup
156.77
KB
-r-xr-xr-x
2026-06-03 10:52
dmstats
156.77
KB
-r-xr-xr-x
2026-06-03 10:52
dnssec-cds
47.67
KB
-rwxr-xr-x
2026-09-16 16:17
dnssec-checkds
924
B
-rwxr-xr-x
2026-09-16 16:17
dnssec-coverage
926
B
-rwxr-xr-x
2026-09-16 16:17
dnssec-dsfromkey
39.44
KB
-rwxr-xr-x
2026-09-16 16:17
dnssec-importkey
35.44
KB
-rwxr-xr-x
2026-09-16 16:17
dnssec-keyfromlabel
39.42
KB
-rwxr-xr-x
2026-09-16 16:17
dnssec-keygen
47.45
KB
-rwxr-xr-x
2026-09-16 16:17
dnssec-keymgr
922
B
-rwxr-xr-x
2026-09-16 16:17
dnssec-revoke
31.41
KB
-rwxr-xr-x
2026-09-16 16:17
dnssec-settime
47.44
KB
-rwxr-xr-x
2026-09-16 16:17
dnssec-signzone
95.88
KB
-rwxr-xr-x
2026-09-16 16:17
dnssec-verify
31.45
KB
-rwxr-xr-x
2026-09-16 16:17
dosfsck
84.56
KB
-rwxr-xr-x
2022-01-29 18:41
dosfslabel
40.02
KB
-rwxr-xr-x
2022-01-29 18:41
dovecot
359.74
KB
-rwxr-xr-x
2024-09-20 10:46
dpll
48.16
KB
-rwxr-xr-x
2026-04-05 08:31
dumpe2fs
31.29
KB
-rwxr-xr-x
2025-09-21 15:03
e2freefrag
15.19
KB
-rwxr-xr-x
2025-09-21 15:03
e2fsck
356.09
KB
-rwxr-xr-x
2025-09-21 15:03
e2image
43.41
KB
-rwxr-xr-x
2025-09-21 15:03
e2label
104.46
KB
-rwxr-xr-x
2025-09-21 15:03
e2mmpstatus
31.29
KB
-rwxr-xr-x
2025-09-21 15:03
e2undo
23.16
KB
-rwxr-xr-x
2025-09-21 15:03
e4crypt
31.3
KB
-rwxr-xr-x
2025-09-21 15:03
e4defrag
31.26
KB
-rwxr-xr-x
2025-09-21 15:03
eapol_test
2.72
MB
-rwxr-xr-x
2025-03-13 12:42
ebtables
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ebtables-nft
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ebtables-nft-restore
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ebtables-nft-save
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ebtables-restore
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ebtables-save
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ebtables-translate
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
editmap
81.87
KB
-rwxr-xr-x
2023-09-26 17:37
editmap.sendmail
81.87
KB
-rwxr-xr-x
2023-09-26 17:37
edquota
89.5
KB
-rwxr-xr-x
2025-03-12 20:44
efibootdump
23.87
KB
-rwxr-xr-x
2022-01-30 05:12
efibootmgr
45.18
KB
-rwxr-xr-x
2022-01-30 05:12
ether-wake
50.24
KB
-rwxr-xr-x
2024-10-02 19:02
ethtool
988.96
KB
-rwxr-xr-x
2025-10-20 14:14
exicyclog
11.13
KB
-rwxr-xr-x
2024-08-13 10:04
exigrep
10.51
KB
-rwxr-xr-x
2024-08-13 10:04
exim
4.73
MB
-rwsr-xr-x
2024-08-13 10:04
exim_checkaccess
4.85
KB
-rwxr-xr-x
2024-08-13 10:04
exim_dbmbuild
27.41
KB
-rwxr-xr-x
2024-08-13 10:04
exim_dumpdb
38.11
KB
-rwxr-xr-x
2024-08-13 10:04
exim_fixdb
42.74
KB
-rwxr-xr-x
2024-08-13 10:04
exim_lock
31.64
KB
-rwxr-xr-x
2024-08-13 10:04
exim_tidydb
38.29
KB
-rwxr-xr-x
2024-08-13 10:04
eximstats
148.24
KB
-rwxr-xr-x
2024-08-13 10:04
exinext
7.19
KB
-rwxr-xr-x
2024-08-13 10:04
exipick
59.38
KB
-rwxr-xr-x
2024-08-13 10:04
exiqgrep
5.66
KB
-rwxr-xr-x
2024-08-13 10:04
exiqsumm
5.3
KB
-rwxr-xr-x
2024-08-13 10:04
exiwhat
4.45
KB
-rwxr-xr-x
2024-08-13 10:04
extlinux
205.84
KB
-rwxr-xr-x
2026-04-09 03:25
faillock
23.18
KB
-rwxr-xr-x
2026-09-08 12:43
fatlabel
40.02
KB
-rwxr-xr-x
2022-01-29 18:41
fdformat
23.19
KB
-rwxr-xr-x
2026-04-04 22:15
fdisk
112.07
KB
-rwxr-xr-x
2026-04-04 22:15
filefrag
19.22
KB
-rwxr-xr-x
2025-09-21 15:03
findfs
15.16
KB
-rwxr-xr-x
2026-04-04 22:15
fix-info-dir
7.85
KB
-rwxr-xr-x
2022-05-01 13:12
fixfiles
12.1
KB
-rwxr-xr-x
2026-04-04 23:51
fixparts
60.98
KB
-rwxr-xr-x
2022-01-30 23:44
flashrom
911.98
KB
-rwxr-xr-x
2022-02-11 21:46
fsck
43.55
KB
-rwxr-xr-x
2026-04-04 22:15
fsck.cramfs
31.38
KB
-rwxr-xr-x
2026-04-04 22:15
fsck.ext2
356.09
KB
-rwxr-xr-x
2025-09-21 15:03
fsck.ext3
356.09
KB
-rwxr-xr-x
2025-09-21 15:03
fsck.ext4
356.09
KB
-rwxr-xr-x
2025-09-21 15:03
fsck.fat
84.56
KB
-rwxr-xr-x
2022-01-29 18:41
fsck.minix
55.71
KB
-rwxr-xr-x
2026-04-04 22:15
fsck.msdos
84.56
KB
-rwxr-xr-x
2022-01-29 18:41
fsck.vfat
84.56
KB
-rwxr-xr-x
2022-01-29 18:41
fsck.xfs
2.54
KB
-rwxr-xr-x
2025-09-21 13:01
fsfreeze
15.15
KB
-rwxr-xr-x
2026-04-04 22:15
fstrim
43.5
KB
-rwxr-xr-x
2026-04-04 22:15
fuser
41.09
KB
-rwxr-xr-x
2022-03-25 15:53
fxload
19.91
KB
-rwxr-xr-x
2022-01-30 09:53
g13-syshelp
88.6
KB
-rwxr-xr-x
2026-01-15 21:34
gdisk
187.38
KB
-rwxr-xr-x
2022-01-30 23:44
genhomedircon
32.04
KB
-rwxr-xr-x
2026-04-04 23:52
genhostid
15.28
KB
-rwxr-xr-x
2025-03-12 19:47
genl
130.15
KB
-rwxr-xr-x
2026-04-05 08:31
getcap
15.13
KB
-rwxr-xr-x
2026-05-20 10:00
getenforce
15.27
KB
-rwxr-xr-x
2025-03-12 23:36
getpcaps
15.13
KB
-rwxr-xr-x
2026-05-20 10:00
getpidprevcon
15.29
KB
-rwxr-xr-x
2025-03-12 23:36
getpolicyload
15.28
KB
-rwxr-xr-x
2025-03-12 23:36
getsebool
15.3
KB
-rwxr-xr-x
2025-03-12 23:36
groupadd
68.77
KB
-rwxr-xr-x
2026-04-08 19:49
groupdel
64.53
KB
-rwxr-xr-x
2026-04-08 19:49
groupmems
55.77
KB
-rwxr-xr-x
2026-04-08 19:49
groupmod
72.76
KB
-rwxr-xr-x
2026-04-08 19:49
grpck
59.76
KB
-rwxr-xr-x
2026-04-08 19:49
grpconv
51.56
KB
-rwxr-xr-x
2026-04-08 19:49
grpunconv
51.53
KB
-rwxr-xr-x
2026-04-08 19:49
grub2-bios-setup
1.67
MB
-rwxr-xr-x
2026-04-06 12:55
grub2-get-kernel-settings
2.68
KB
-rwxr-xr-x
2026-04-06 12:55
grub2-install
1.97
MB
-rwxr-xr-x
2026-04-06 12:55
grub2-macbless
1.65
MB
-rwxr-xr-x
2026-04-06 12:55
grub2-mkconfig
9.21
KB
-rwxr-xr-x
2026-04-06 12:55
grub2-probe
1.67
MB
-rwxr-xr-x
2026-04-06 12:55
grub2-reboot
4.7
KB
-rwxr-xr-x
2026-04-06 12:55
grub2-set-bootflag
15.09
KB
-rwsr-xr-x
2026-04-06 12:55
grub2-set-default
3.46
KB
-rwxr-xr-x
2026-04-06 12:55
grub2-set-password
2.74
KB
-rwxr-xr-x
2026-04-06 12:55
grub2-setpassword
2.74
KB
-rwxr-xr-x
2026-04-06 12:55
grub2-switch-to-blscfg
8.81
KB
-rwxr-xr-x
2026-04-06 12:55
grubby
260
B
-rwxr-xr-x
2026-04-14 16:50
halt
298.43
KB
-rwxr-xr-x
2026-09-15 22:00
hdparm
143.06
KB
-rwxr-xr-x
2022-03-25 06:20
httpd
2.25
MB
-rwxr-xr-x
2024-07-18 11:39
hwclock
59.77
KB
-rwxr-xr-x
2026-04-04 22:15
iconvconfig
31.67
KB
-rwxr-xr-x
2026-08-03 10:14
ifconfig
78.98
KB
-rwxr-xr-x
2024-10-02 19:02
ifdown
1.07
KB
-rwxr-xr-x
2025-12-12 15:24
ifenslave
23.73
KB
-rwxr-xr-x
2025-10-20 12:44
ifstat
39.6
KB
-rwxr-xr-x
2026-04-05 08:31
ifup
1.04
KB
-rwxr-xr-x
2025-12-12 15:24
init
95.74
KB
-rwxr-xr-x
2026-09-15 22:00
insmod
165.57
KB
-rwxr-xr-x
2025-09-18 11:41
install-info
106.7
KB
-rwxr-xr-x
2022-05-01 13:12
installkernel
323
B
-rwxr-xr-x
2026-04-14 16:50
intel_sdsi
22.43
KB
-rwxr-xr-x
2026-09-21 15:57
ip
774.32
KB
-rwxr-xr-x
2026-04-05 08:31
ip6tables
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ip6tables-nft
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ip6tables-nft-restore
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ip6tables-nft-save
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ip6tables-restore
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ip6tables-restore-translate
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ip6tables-save
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ip6tables-translate
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
ipmaddr
19.45
KB
-rwxr-xr-x
2024-10-02 19:02
iprconfig
405.15
KB
-rwxr-xr-x
2022-03-25 07:42
iprdbg
56.27
KB
-rwxr-xr-x
2022-03-25 07:42
iprdump
32.02
KB
-rwxr-xr-x
2022-03-25 07:42
iprinit
76.68
KB
-rwxr-xr-x
2022-03-25 07:42
iprsos
2.19
KB
-rwxr-xr-x
2020-05-08 14:19
iprupdate
90.26
KB
-rwxr-xr-x
2022-03-25 07:42
ipset
15.27
KB
-rwxr-xr-x
2025-02-04 03:39
ipset-translate
15.27
KB
-rwxr-xr-x
2025-02-04 03:39
iptables
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
iptables-nft
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
iptables-nft-restore
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
iptables-nft-save
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
iptables-restore
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
iptables-restore-translate
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
iptables-save
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
iptables-translate
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
iptunnel
19.5
KB
-rwxr-xr-x
2024-10-02 19:02
irqbalance
64.45
KB
-rwxr-xr-x
2026-04-08 16:40
irqbalance-ui
39.59
KB
-rwxr-xr-x
2026-04-08 16:40
iw
320.06
KB
-rwxr-xr-x
2026-04-08 17:40
kexec
192.59
KB
-rwxr-xr-x
2026-04-08 18:11
key.dns_resolver
31.35
KB
-rwxr-xr-x
2023-04-05 19:15
kpartx
47.52
KB
-rwxr-xr-x
2026-04-05 00:24
lchage
23.16
KB
-rwxr-xr-x
2025-09-21 10:53
ldattach
27.23
KB
-rwxr-xr-x
2026-04-04 22:15
ldconfig
1.12
MB
-rwxr-xr-x
2026-08-03 10:14
lfd
392.54
KB
-rwx------
2026-09-07 09:30
lgroupadd
15.12
KB
-rwxr-xr-x
2025-09-21 10:53
lgroupdel
15.11
KB
-rwxr-xr-x
2025-09-21 10:53
lgroupmod
23.13
KB
-rwxr-xr-x
2025-09-21 10:53
lid
19.13
KB
-rwxr-xr-x
2025-09-21 10:53
lnewusers
23.13
KB
-rwxr-xr-x
2025-09-21 10:53
lnstat
23.59
KB
-rwxr-xr-x
2026-04-05 08:31
load_policy
15.12
KB
-rwxr-xr-x
2026-04-04 23:52
logrotate
95.66
KB
-rwxr-xr-x
2025-09-21 12:04
logsave
15.19
KB
-rwxr-xr-x
2025-09-21 15:03
losetup
72.09
KB
-rwxr-xr-x
2026-04-04 22:15
lpasswd
23.13
KB
-rwxr-xr-x
2025-09-21 10:53
lsmod
165.57
KB
-rwxr-xr-x
2025-09-18 11:41
lspci
97.57
KB
-rwxr-xr-x
2025-03-12 20:27
luseradd
23.13
KB
-rwxr-xr-x
2025-09-21 10:53
luserdel
15.12
KB
-rwxr-xr-x
2025-09-21 10:53
lusermod
23.13
KB
-rwxr-xr-x
2025-09-21 10:53
mail
372.44
KB
-rwxr-xr-x
2023-12-09 06:47
mailstats
61.72
KB
-rwxr-xr-x
2023-09-26 17:37
mailx
372.44
KB
-rwxr-xr-x
2023-12-09 06:47
makedumpfile
431.84
KB
-rwxr-xr-x
2026-04-08 18:11
makemap
86.18
KB
-rwxr-xr-x
2023-09-26 17:37
makemap.sendmail
86.18
KB
-rwxr-xr-x
2023-09-26 17:37
matchpathcon
15.31
KB
-rwxr-xr-x
2025-03-12 23:36
md-auto-readd.sh
401
B
-rwxr-xr-x
2026-09-15 13:21
mdadm
629.92
KB
-rwxr-xr-x
2026-09-15 13:24
mdmon
296.34
KB
-rwxr-xr-x
2026-09-15 13:24
mii-diag
24.2
KB
-rwxr-xr-x
2024-10-02 19:02
mii-tool
27.78
KB
-rwxr-xr-x
2024-10-02 19:02
mkdict
255
B
-rwxr-xr-x
2026-04-09 05:18
mkdosfs
52.51
KB
-rwxr-xr-x
2022-01-29 18:41
mkdumprd
12.13
KB
-rwxr-xr-x
2026-04-08 18:11
mke2fs
132.53
KB
-rwxr-xr-x
2025-09-21 15:03
mkfs
15.17
KB
-rwxr-xr-x
2026-04-04 22:15
mkfs.cramfs
35.38
KB
-rwxr-xr-x
2026-04-04 22:15
mkfs.ext2
132.53
KB
-rwxr-xr-x
2025-09-21 15:03
mkfs.ext3
132.53
KB
-rwxr-xr-x
2025-09-21 15:03
mkfs.ext4
132.53
KB
-rwxr-xr-x
2025-09-21 15:03
mkfs.fat
52.51
KB
-rwxr-xr-x
2022-01-29 18:41
mkfs.minix
43.55
KB
-rwxr-xr-x
2026-04-04 22:15
mkfs.msdos
52.51
KB
-rwxr-xr-x
2022-01-29 18:41
mkfs.vfat
52.51
KB
-rwxr-xr-x
2022-01-29 18:41
mkfs.xfs
450.77
KB
-rwxr-xr-x
2025-09-21 13:02
mkhomedir_helper
23.21
KB
-rwxr-xr-x
2026-09-08 12:43
mklost+found
15.12
KB
-rwxr-xr-x
2025-09-21 15:03
mksquashfs
197.62
KB
-rwxr-xr-x
2024-04-03 13:45
mkswap
47.5
KB
-rwxr-xr-x
2026-04-04 22:15
modinfo
165.57
KB
-rwxr-xr-x
2025-09-18 11:41
modprobe
165.57
KB
-rwxr-xr-x
2025-09-18 11:41
mount.fuse
15.34
KB
-rwxr-xr-x
2025-03-12 19:30
named
544.11
KB
-rwxr-xr-x
2026-09-16 16:17
named-checkconf
39.4
KB
-rwxr-xr-x
2026-09-16 16:17
named-checkzone
39.34
KB
-rwxr-xr-x
2026-09-16 16:17
named-compilezone
39.34
KB
-rwxr-xr-x
2026-09-16 16:17
named-journalprint
15.13
KB
-rwxr-xr-x
2026-09-16 16:17
named-nzd2nzf
15.12
KB
-rwxr-xr-x
2026-09-16 16:17
nameif
15.58
KB
-rwxr-xr-x
2024-10-02 19:02
newusers
88.7
KB
-rwxr-xr-x
2026-04-08 19:49
nft
27.17
KB
-rwxr-xr-x
2026-08-26 12:09
nologin
15.16
KB
-rwxr-xr-x
2026-04-04 22:15
nsec3hash
15.2
KB
-rwxr-xr-x
2026-09-16 16:17
nstat
31.34
KB
-rwxr-xr-x
2026-04-05 08:31
oddjobd
71.84
KB
-rwxr-xr-x
2023-04-07 00:20
ownership
15.13
KB
-rwxr-xr-x
2026-04-09 07:32
packer
15.11
KB
-rwxr-xr-x
2026-04-09 05:18
pam_console_apply
43.51
KB
-rwxr-xr-x
2026-09-08 12:43
pam_namespace_helper
471
B
-rwxr-xr-x
2026-09-08 12:42
pam_timestamp_check
15.13
KB
-rwsr-xr-x
2026-09-08 12:43
parted
96.39
KB
-rwxr-xr-x
2025-03-12 20:00
partprobe
15.34
KB
-rwxr-xr-x
2025-03-12 20:00
partx
59.77
KB
-rwxr-xr-x
2026-04-04 22:15
pidof
23.33
KB
-rwxr-xr-x
2024-04-30 16:43
ping
89.33
KB
-rwxr-xr-x
2025-10-20 12:44
ping6
89.33
KB
-rwxr-xr-x
2025-10-20 12:44
pivot_root
15.16
KB
-rwxr-xr-x
2026-04-04 22:15
plipconfig
15.35
KB
-rwxr-xr-x
2024-10-02 19:02
pluginviewer
19.39
KB
-rwxr-xr-x
2025-09-25 11:46
plymouth-set-default-theme
6.05
KB
-rwxr-xr-x
2026-04-09 04:05
plymouthd
152.62
KB
-rwxr-xr-x
2026-04-09 04:05
poweroff
298.43
KB
-rwxr-xr-x
2026-09-15 22:00
praliases
82.03
KB
-rwxr-xr-x
2023-09-26 17:37
pure-ftpd
2.27
MB
-rwxr-xr-x
2018-08-31 17:30
pwck
55.6
KB
-rwxr-xr-x
2026-04-08 19:49
pwconv
47.45
KB
-rwxr-xr-x
2026-04-08 19:49
pwhistory_helper
19.2
KB
-rwxr-xr-x
2026-09-08 12:43
pwunconv
47.41
KB
-rwxr-xr-x
2026-04-08 19:49
quotacheck
93.62
KB
-rwxr-xr-x
2025-03-12 20:44
quotaoff
56.67
KB
-rwxr-xr-x
2025-03-12 20:44
quotaon
56.67
KB
-rwxr-xr-x
2025-03-12 20:44
quotastats
15.34
KB
-rwxr-xr-x
2025-03-12 20:44
raid-check
3.71
KB
-rwxr-xr-x
2026-09-15 13:21
rdisc
31.36
KB
-rwxr-xr-x
2025-10-20 12:44
rdma
117.06
KB
-rwxr-xr-x
2026-04-05 08:31
readprofile
23.27
KB
-rwxr-xr-x
2026-04-04 22:15
rear
26.46
KB
-rwxr-xr-x
2026-04-09 18:32
reboot
298.43
KB
-rwxr-xr-x
2026-09-15 22:00
repquota
77.55
KB
-rwxr-xr-x
2025-03-12 20:44
request-key
27.29
KB
-rwxr-xr-x
2023-04-05 19:15
resize2fs
67.64
KB
-rwxr-xr-x
2025-09-21 15:03
resizepart
23.4
KB
-rwxr-xr-x
2026-04-04 22:15
restorecon
23.19
KB
-rwxr-xr-x
2026-04-04 23:52
restorecon_xattr
15.13
KB
-rwxr-xr-x
2026-04-04 23:52
rfkill
31.34
KB
-rwxr-xr-x
2026-04-04 22:15
rmmod
165.57
KB
-rwxr-xr-x
2025-09-18 11:41
rndc
43.25
KB
-rwxr-xr-x
2026-09-16 16:17
rndc-confgen
23.26
KB
-rwxr-xr-x
2026-09-16 16:17
route
65.77
KB
-rwxr-xr-x
2024-10-02 19:02
rsyslogd
806.89
KB
-rwxr-xr-x
2026-09-22 04:31
rtacct
29.34
KB
-rwxr-xr-x
2026-04-05 08:31
rtcwake
35.26
KB
-rwxr-xr-x
2026-04-04 22:15
rtmon
126.05
KB
-rwxr-xr-x
2026-04-05 08:31
rtstat
23.59
KB
-rwxr-xr-x
2026-04-05 08:31
runlevel
298.43
KB
-rwxr-xr-x
2026-09-15 22:00
runuser
55.61
KB
-rwxr-xr-x
2026-04-04 22:15
saslauthd
88.33
KB
-rwxr-xr-x
2025-09-25 11:46
sasldblistusers2
15.27
KB
-rwxr-xr-x
2025-09-25 11:46
saslpasswd2
15.24
KB
-rwxr-xr-x
2025-09-25 11:46
sefcontext_compile
72.38
KB
-rwxr-xr-x
2025-03-12 23:36
selabel_digest
15.31
KB
-rwxr-xr-x
2025-03-12 23:36
selabel_get_digests_all_partial_matches
15.33
KB
-rwxr-xr-x
2025-03-12 23:36
selabel_lookup
15.3
KB
-rwxr-xr-x
2025-03-12 23:36
selabel_lookup_best_match
15.31
KB
-rwxr-xr-x
2025-03-12 23:36
selabel_partial_match
15.3
KB
-rwxr-xr-x
2025-03-12 23:36
selinux_check_access
15.31
KB
-rwxr-xr-x
2025-03-12 23:36
selinuxconlist
15.3
KB
-rwxr-xr-x
2025-03-12 23:36
selinuxdefcon
15.3
KB
-rwxr-xr-x
2025-03-12 23:36
selinuxenabled
15.27
KB
-rwxr-xr-x
2025-03-12 23:36
selinuxexeccon
15.29
KB
-rwxr-xr-x
2025-03-12 23:36
semanage
40.64
KB
-rwxr-xr-x
2026-04-05 11:05
semodule
32.04
KB
-rwxr-xr-x
2026-04-04 23:52
sendmail
856.39
KB
-rwxr-sr-x
2023-09-26 17:37
sendmail.sendmail
856.39
KB
-rwxr-sr-x
2023-09-26 17:37
service
4.51
KB
-rwxr-xr-x
2024-08-27 11:35
sestatus
23.13
KB
-rwxr-xr-x
2026-04-04 23:52
setcap
15.13
KB
-rwxr-xr-x
2026-05-20 10:00
setenforce
15.3
KB
-rwxr-xr-x
2025-03-12 23:36
setfiles
23.19
KB
-rwxr-xr-x
2026-04-04 23:52
setpci
31.35
KB
-rwxr-xr-x
2025-03-12 20:27
setquota
81.58
KB
-rwxr-xr-x
2025-03-12 20:44
setregdomain
1.71
KB
-rwxr-xr-x
2026-04-09 13:43
setsebool
19.15
KB
-rwxr-xr-x
2026-04-04 23:52
sfdisk
103.98
KB
-rwxr-xr-x
2026-04-04 22:15
sgdisk
167.14
KB
-rwxr-xr-x
2022-01-30 23:44
shutdown
298.43
KB
-rwxr-xr-x
2026-09-15 22:00
skdump
19.61
KB
-rwxr-xr-x
2022-02-09 21:01
sktest
15.51
KB
-rwxr-xr-x
2022-02-09 21:01
slattach
37.57
KB
-rwxr-xr-x
2024-10-02 19:02
smrsh
61.41
KB
-rwxr-xr-x
2023-09-26 17:37
ss
131.32
KB
-rwxr-xr-x
2026-04-05 08:31
sshd
406.9
KB
-rwxr-xr-x
2026-09-21 16:45
sulogin
43.4
KB
-rwxr-xr-x
2026-04-04 22:15
swaplabel
19.19
KB
-rwxr-xr-x
2026-04-04 22:15
swapoff
23.27
KB
-rwxr-xr-x
2026-04-04 22:15
swapon
43.31
KB
-rwxr-xr-x
2026-04-04 22:15
switch_root
23.2
KB
-rwxr-xr-x
2026-04-04 22:15
sysctl
31.49
KB
-rwxr-xr-x
2024-04-30 16:43
tc
640.09
KB
-rwxr-xr-x
2026-04-05 08:31
telinit
298.43
KB
-rwxr-xr-x
2026-09-15 22:00
testsaslauthd
15.16
KB
-rwxr-xr-x
2025-09-25 11:46
tipc
92.8
KB
-rwxr-xr-x
2026-04-05 08:31
tracepath
19.22
KB
-rwxr-xr-x
2025-10-20 12:44
tracepath6
19.22
KB
-rwxr-xr-x
2025-10-20 12:44
tsig-keygen
27.26
KB
-rwxr-xr-x
2026-09-16 16:17
tune2fs
104.46
KB
-rwxr-xr-x
2025-09-21 15:03
tuned
3.87
KB
-rwxr-xr-x
2026-02-22 19:49
tuned-adm
6.68
KB
-rwxr-xr-x
2026-02-22 19:49
udevadm
587.85
KB
-rwxr-xr-x
2026-09-15 22:00
umount.udisks2
15.13
KB
-rwxr-xr-x
2025-10-20 13:58
unbound-anchor
51.67
KB
-rwxr-xr-x
2026-09-16 21:36
unix_chkpwd
23.29
KB
-rwsr-xr-x
2026-09-08 12:43
unix_update
31.33
KB
-rwx------
2026-09-08 12:43
unsquashfs
113.8
KB
-rwxr-xr-x
2024-04-03 13:45
update-alternatives
39.59
KB
-rwxr-xr-x
2025-03-12 10:43
update-pciids
1.72
KB
-rwxr-xr-x
2025-03-12 20:27
useradd
137.84
KB
-rwxr-xr-x
2026-04-08 19:49
userdel
88.84
KB
-rwxr-xr-x
2026-04-08 19:49
usermod
129.66
KB
-rwxr-xr-x
2026-04-08 19:49
validatetrans
15.29
KB
-rwxr-xr-x
2025-03-12 23:36
vdpa
35.88
KB
-rwxr-xr-x
2026-04-05 08:31
vigr
58.16
KB
-rwxr-xr-x
2026-04-08 19:49
vipw
58.16
KB
-rwxr-xr-x
2026-04-08 19:49
virt-what
15.71
KB
-rwxr-xr-x
2025-09-21 11:48
virt-what-cvm
15.32
KB
-rwxr-xr-x
2025-09-21 11:48
visudo
267.27
KB
-rwxr-xr-x
2026-09-21 17:01
vmcore-dmesg
27.3
KB
-rwxr-xr-x
2026-04-08 18:11
vpddecode
19.15
KB
-rwxr-xr-x
2026-04-09 07:32
weak-modules
33.58
KB
-rwxr-xr-x
2025-09-18 11:29
wipefs
39.28
KB
-rwxr-xr-x
2026-04-04 22:15
wpa_cli
135.89
KB
-rwxr-xr-x
2025-03-13 12:42
wpa_passphrase
15.3
KB
-rwxr-xr-x
2025-03-13 12:42
wpa_supplicant
3.1
MB
-rwxr-xr-x
2025-03-13 12:42
xfs_admin
2.13
KB
-rwxr-xr-x
2025-09-21 13:01
xfs_bmap
699
B
-rwxr-xr-x
2025-09-21 13:01
xfs_copy
92.62
KB
-rwxr-xr-x
2025-09-21 13:02
xfs_db
708.08
KB
-rwxr-xr-x
2025-09-21 13:02
xfs_estimate
15.16
KB
-rwxr-xr-x
2025-09-21 13:02
xfs_freeze
804
B
-rwxr-xr-x
2025-09-21 13:01
xfs_fsr
43.51
KB
-rwxr-xr-x
2025-09-21 13:02
xfs_growfs
43.63
KB
-rwxr-xr-x
2025-09-21 13:02
xfs_info
1.27
KB
-rwxr-xr-x
2025-09-21 13:01
xfs_io
202.59
KB
-rwxr-xr-x
2025-09-21 13:02
xfs_logprint
88.26
KB
-rwxr-xr-x
2025-09-21 13:02
xfs_mdrestore
27.28
KB
-rwxr-xr-x
2025-09-21 13:02
xfs_metadump
786
B
-rwxr-xr-x
2025-09-21 13:01
xfs_mkfile
1.02
KB
-rwxr-xr-x
2025-09-21 13:01
xfs_ncheck
689
B
-rwxr-xr-x
2025-09-21 13:01
xfs_quota
92.1
KB
-rwxr-xr-x
2025-09-21 13:02
xfs_repair
686.23
KB
-rwxr-xr-x
2025-09-21 13:02
xfs_rtcp
19.14
KB
-rwxr-xr-x
2025-09-21 13:02
xfs_scrub
116.7
KB
-rwxr-xr-x
2025-09-21 13:02
xfs_scrub_all
5.86
KB
-rwxr-xr-x
2025-09-21 13:01
xfs_spaceman
43.78
KB
-rwxr-xr-x
2025-09-21 13:02
xqmstats
15.33
KB
-rwxr-xr-x
2025-03-12 20:44
xtables-monitor
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
xtables-nft-multi
231.41
KB
-rwxr-xr-x
2025-02-04 03:47
zic
59.63
KB
-rwxr-xr-x
2026-08-03 10:14
zramctl
55.87
KB
-rwxr-xr-x
2026-04-04 22:15
Save
Rename
#!/usr/bin/python3 # -*- coding: utf-8 -*- # # Authors: # Pavel Březina <pbrezina@redhat.com> # # Copyright (C) 2018 Red Hat # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # import os import sys import locale import gettext import subprocess from authcompat_Options import Options from authcompat_EnvironmentFile import EnvironmentFile from authcompat_ConfigSnippet import ConfigSnippet _ = gettext.gettext def eprint(*args, **kwargs): print(*args, file=sys.stderr, **kwargs) class Command: TEST = False def __init__(self, command, args, input=None, check=True): self.args = [command] + args self.input = input.encode() if input is not None else None self.check = check self.result = None def run(self): print(_("Executing: %s") % ' '.join(self.args)) if self.TEST: return self.result = subprocess.run(self.args, check=self.check, input=self.input, stdout=subprocess.PIPE, stderr=subprocess.PIPE) class Service: def __init__(self, name): self.name = name + '.service' def runsystemd(self, command, required, enoent_code): try: command.run() except subprocess.CalledProcessError as result: if required and result.returncode == enoent_code: eprint(_("Service %s was not found. Please install the service.") % self.name) elif result.returncode != enoent_code: eprint(_("Command [%s] failed with %d, stderr:") % (' '.join(result.cmd), result.returncode)) eprint(result.stderr.decode()) def enable(self): cmd = Command(Path.System("cmd-systemctl"), ["enable", self.name]) self.runsystemd(cmd, True, 1) def disable(self): cmd = Command(Path.System("cmd-systemctl"), ["disable", self.name]) self.runsystemd(cmd, False, 1) def start(self, Restart=True): if Restart: self.stop() cmd = Command(Path.System("cmd-systemctl"), ["start", self.name]) self.runsystemd(cmd, True, 5) def stop(self): cmd = Command(Path.System("cmd-systemctl"), ["stop", self.name]) self.runsystemd(cmd, False, 5) class Path: LocalDir = os.path.dirname(os.path.realpath(__file__)) Config = EnvironmentFile(LocalDir + "/authcompat_paths") Files = { 'ldap.conf': '/etc/openldap/ldap.conf', 'krb5.conf': '/etc/krb5.conf.d/authconfig-krb.conf', 'sssd.conf': '/etc/sssd/conf.d/authconfig-sssd.conf', 'authconfig': '/etc/sysconfig/authconfig', 'network': '/etc/sysconfig/network', 'pwquality.conf': '/etc/security/pwquality.conf.d/10-authconfig-pwquality.conf', 'yp.conf': '/etc/yp.conf', 'cmd-systemctl': '/usr/bin/systemctl', 'cmd-authselect': '/usr/bin/authselect', 'cmd-realm': '/usr/sbin/realm', 'cmd-domainname': '/usr/bin/domainname', 'cmd-setsebool': '/usr/sbin/setsebool' } @staticmethod def Local(relpath): return "%s/%s" % (Path.LocalDir, relpath) @staticmethod def System(name): return Path.Files[name] class Configuration: class Base(object): def __init__(self, options, ServiceName=None): self.options = options self.service = None if ServiceName is not None: self.service = Service(ServiceName) def isEnabled(self): return True def isDisabled(self): return not self.isEnabled() def enableService(self, nostart): if self.service is None: return self.service.enable() if not nostart: self.service.start() def disableService(self, nostop): if self.service is None: return self.service.disable() if not nostop: self.service.stop() def cleanup(self): return def write(self): return def get(self, name): return self.options.get(name) def isset(self, name): return self.options.isset(name) def getTrueOrNone(self, name): return self.options.getTrueOrNone(name) def getBool(self, name): return self.options.getBool(name) def getBoolAsValue(self, name, if_true, if_false, AllowNone=False): if AllowNone and not self.isset(name): return None value = self.getBool(name) if value: return if_true return if_false def removeFile(self, filename): print(_("Removing file: %s") % filename) if self.options.getBool("test-call"): return try: os.remove(filename) except FileNotFoundError: return class LDAP(Base): def __init__(self, options): super(Configuration.LDAP, self).__init__(options) def write(self): config = EnvironmentFile(Path.System('ldap.conf'), " ", delimiter_re=r"\s\t", quotes=False) if self.isset("ldapserver"): config.set("URI", self.get("ldapserver")) if self.isset("ldapbasedn"): config.set("BASE", self.get("ldapbasedn")) config.write() class Kerberos(Base): def __init__(self, options): super(Configuration.Kerberos, self).__init__(options) def isEnabled(self): if not self.isset("krb5realm") and not self.isset("krb5realmdns"): return None return self.get("krb5realm") != "" or self.getBool("krb5realmdns") def cleanup(self): # Do not remove the file if these options are not set if not self.isset("krb5realm") and not self.isset("krb5realmdns"): return self.removeFile(Path.System('krb5.conf')) def write(self): if self.isDisabled(): return path = Path.Local("snippets/authconfig-krb.conf") config = ConfigSnippet(path, Path.System('krb5.conf')) realm = self.get("krb5realm") keys = { 'realm': self.get("krb5realm"), 'kdc-srv': self.get("krb5kdcdns"), 'realm-srv': self.get("krb5realmdns"), 'kdc': self.get("krb5kdc") if realm else None, 'adminserver': self.get("krb5adminserver") if realm else None, 'domain': realm.lower() if realm else None } config.write(keys) class SSSD(Base): def __init__(self, options): super(Configuration.SSSD, self).__init__(options, ServiceName="sssd") def isEnabled(self): if not self.isset("ldap") and not self.isset("sssd"): return None return self.getBool("ldap") or self.getBool("sssd") def cleanup(self): self.removeFile(Path.System('sssd.conf')) def write(self): # Authconfig would not generate sssd in this case so we should not # either. Even if --enablesssd[auth] was provided the configuration # would not be generated. if not self.getBool("ldap"): return path = Path.Local("snippets/authconfig-sssd.conf") config = ConfigSnippet(path, Path.System('sssd.conf')) schema = "rfc2307bis" if self.getBool("rfc2307bis") else None keys = { 'ldap-uri': self.get("ldapserver"), 'ldap-basedn': self.get("ldapbasedn"), 'ldap-tls': self.getTrueOrNone("ldaptls"), 'ldap-schema': schema, 'krb5': self.getTrueOrNone("krb5"), 'kdc-uri': self.get("krb5kdc"), 'kpasswd-uri': self.get("krb5adminserver"), 'realm': self.get("krb5realm"), 'cache-creds': self.getTrueOrNone("cachecreds"), 'cert-auth': self.getTrueOrNone("smartcard") } config.write(keys) os.chmod(Path.System('sssd.conf'), mode=0o600) class Winbind(Base): def __init__(self, options): super(Configuration.Winbind, self).__init__(options, ServiceName="winbind") def isEnabled(self): if not self.isset("winbind") and not self.isset("winbindauth"): return None return self.getBool("winbind") or self.getBool("winbindauth") def write(self): if not self.isset("winbindjoin"): return creds = self.options.get("winbindjoin").split("%", 1) user = creds[0] password = None if len(creds) > 1: password = creds[1] + '\n' args = [ 'join', '-U', '"%s"' % user, '--client-software', 'winbind' ] if self.isset("smbworkgroup"): args.append(self.get("smbworkgroup")) cmd = Command(Path.System('cmd-realm'), args, input=password) try: cmd.run() except FileNotFoundError: eprint(_("%s was not found. Please, install realmd.") % Path.System('cmd-realm')) class PWQuality(Base): def __init__(self, options): super(Configuration.PWQuality, self).__init__(options) def write(self): config = EnvironmentFile(Path.System('pwquality.conf')) value_set = False pwopts = { "minlen": self.get("passminlen"), "minclass": self.get("passminclass"), "maxrepeat": self.get("passmaxrepeat"), "maxclassrepeat": self.get("passmaxclassrepeat"), "lcredit": self.getBoolAsValue("reqlower", -1, 0, AllowNone=True), "ucredit": self.getBoolAsValue("requpper", -1, 0, AllowNone=True), "dcredit": self.getBoolAsValue("reqdigit", -1, 0, AllowNone=True), "ocredit": self.getBoolAsValue("reqother", -1, 0, AllowNone=True) } # Write options only if their are actually set for opt, value in pwopts.items(): if value is not None: print(opt + "=" + str(value)) config.set(opt, value) value_set = True if value_set: config.write() class MakeHomedir(Base): def __init__(self, options): super(Configuration.MakeHomedir, self).__init__(options, ServiceName="oddjobd") def isEnabled(self): if not self.isset("mkhomedir"): return None return self.getBool("mkhomedir") def disableService(self, nostop): # Never disable the service in case it is already running as # other applications may depend on it. return class AuthCompat: def __init__(self): self.sysconfig = EnvironmentFile(Path.System('authconfig')) self.options = Options() self.options.parse() self.options.applysysconfig(self.sysconfig) self.options.updatesysconfig(self.sysconfig) def printWarning(self): print(_("Running authconfig compatibility tool.")) print(_("The purpose of this tool is to enable authentication against " "chosen services with authselect and minimum configuration. " "It does not provide all capabilities of authconfig.\n")) print(_("IMPORTANT: authconfig is replaced by authselect, " "please update your scripts.")) print(_("See man authselect-migration(7) to help you with migration to authselect")) options = self.options.getSetButUnsupported() if options: print(_("Warning: These options are not supported anymore " "and have no effect:")) for name in options: print(" --%s" % name) print("") def printOptions(self): for option in Options.List: print("%s=%s" % (option.name, option.value)) def printSysconfig(self): for line in self.sysconfig.getall(): print("%s=%s" % (line.name, line.value)) def canContinue(self): disallowed = ["test", "probe", "restorebackup", "restorelastbackup"] required = ["update", "updateall", "kickstart"] if not self.options.getBool("test") and os.getuid() != 0: print(_("authconfig can only be run as root")) return False for option in disallowed: if self.options.getBool(option): print(_("Error: option --%s is no longer supported and we " "cannot continue if it is set." % option)) return False if self.options.getBool("winbind") != self.options.getBool("winbindauth"): print(_("Error: Both --enablewinbind and --enablewinbindauth must be set.")) return False # We require one of these options to perform changes # We encourage to use --updateall since we no longer support just pure # --update or --kickstart, they will act as --updateall. for option in required: if self.options.getBool(option): return True print(_("Error: Please, provide --updateall option.")) return False def runAuthselect(self): map = { 'smartcard': 'with-smartcard', 'requiresmartcard': 'with-smartcard-required', 'fingerprint': 'with-fingerprint', 'mkhomedir': 'with-mkhomedir', 'faillock': 'with-faillock', 'pamaccess': 'with-pamaccess', 'winbindkrb5': 'with-krb5' } # Read current configuration first. (profile, features) = self.getCurrentAuthselectConfig() # Change profile if requested. if (self.options.getBool("ldap") or self.options.getBool("ldapauth") or self.options.getBool("sssd") or self.options.getBool("sssdauth")): profile = "sssd" elif self.options.getBool("winbind"): profile = "winbind" # Default to sssd if profile is None: profile = "sssd" # Add enabled and remove disabled features. for option, feature in map.items(): if not self.options.isset(option): continue enabled = self.options.getBool(option) if enabled: features.append(feature) else: while feature in features: features.remove(feature) # Add lock-on-smartcard-removal if requested if self.options.isset("smartcardaction"): if int(self.options.get("smartcardaction")) == 0: features.append("with-smartcard-lock-on-removal") else: features.remove("with-smartcard-lock-on-removal") # Remove duplicates. The order is not kept but that does not matter. features = list(set(features)) # Always run with --force. This is either first call of authconfig # in installation script or it is run on already configured system. # We want to use authselect in both cases anyway, since authconfig # would change the configuration either way. args = ["select", profile] args.extend(features) args.append("--force") cmd = Command(Path.System('cmd-authselect'), args) cmd.run() def getCurrentAuthselectConfig(self): cmd = Command(Path.System('cmd-authselect'), ['check'], check=False) cmd.run() if cmd.result is None or cmd.result.returncode != 0: return (None, []) cmd = Command(Path.System('cmd-authselect'), ['current', '--raw']) cmd.run() current = cmd.result.stdout.decode("utf-8").split() return (current[0], current[1:]) def writeConfiguration(self): configs = [ Configuration.LDAP(self.options), Configuration.Kerberos(self.options), Configuration.SSSD(self.options), Configuration.Winbind(self.options), Configuration.PWQuality(self.options), Configuration.MakeHomedir(self.options), ] for config in configs: # Configuration decides if it needs to write something or not config.write() # Enable or disable service if needed nostart = self.options.getBool("nostart") try: enabled = config.isEnabled() # Skip service management if it can not be decided if enabled is None: continue if enabled: config.enableService(nostart) else: config.disableService(nostart) config.cleanup() except subprocess.CalledProcessError as result: # This is not fatal error. eprint(_("Command [%s] failed with %d, stderr:") % (' '.join(result.cmd), result.returncode)) eprint(result.stderr.decode()) def main(): try: locale.setlocale(locale.LC_ALL, '') except locale.Error: sys.stderr.write('Warning: Unsupported locale setting.\n') authcompat = AuthCompat() authcompat.printWarning() Command.TEST = authcompat.options.getBool("test-call") EnvironmentFile.TEST = authcompat.options.getBool("test-call") ConfigSnippet.TEST = authcompat.options.getBool("test-call") if not authcompat.canContinue(): sys.exit(1) try: authcompat.runAuthselect() authcompat.writeConfiguration() authcompat.sysconfig.write() except subprocess.CalledProcessError as result: eprint(_("Command [%s] failed with %d, stderr:") % (' '.join(result.cmd), result.returncode)) eprint(result.stderr.decode()) sys.exit(0) if __name__ == "__main__": main()