誰かが私にこれを説明できますか?ルート経由でログインすると、なぜ発行してifconfig
実行できますか?新しいユーザーを作成した後、ifconfig
パッケージが見つからないことがわかりました。
バッシュ出力
user@hostname:~$ ifconfig
bash: ifconfig: command not found
user@hostname:~$ locate ifconfig
/sbin/ifconfig
user@hostname:~$ /sbin/ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.121 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::ba27:ebff:fe2e:b2d prefixlen 64 scopeid 0x20<link>
ether b8:27:eb:2e:0b:2d txqueuelen 1000 (Ethernet)
RX packets 2476 bytes 228711 (223.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1942 bytes 275732 (269.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
私はその違いが特権だと思いましたか?つまり、sbin - ルート要件
私のシステムの一部でのみsudoなしでifconfigを実行できます。
では、実際にroot権限を必要とするジョブを実行するためにsbinパスのみを指定できるのはなぜですか?
少し混乱しています。それとも私のユーザーがsbinの実行を許可するように誤って設定されていますか?
最初のDebianベースのシステム(私はArchユーザーであり、以前この問題に遭遇したことはありません)
答え1
これはデフォルトで発生しますPATH
。デフォルトでは含まれており、標準ユーザーにはデフォルトでは含まれていませroot
ん。比較して内容を...PATH
/sbin
PATH
/etc/profile
/root/.profile