999 burada ne anlama geliyor?


6

Dizinlerimden birine girdim, 999'un burada ne anlama geldiğini

drwxr-xr-x  9 git       mysql 4096 Nov 12 14:41 gitlab/
drwxr-xr-x  6 gitlab_ci   999 4096 Jun 28 13:36 gitlabci/

bu dizinler tamamen gitlab gibi olabilir mi gitlab ve gitlab'in sahibi olunur

Böyle bir şey istiyorum

drwxr-xr-x  9 git       git 4096 Nov 12 14:41 gitlab/
drwxr-xr-x  6 gitlab_ci gitlab_ci 4096 Jun 28 13:36 gitlabci/

sudo chown git:git gitlab
gronostaj 12:13

Gerçekten de 2 farklı konu var, ancak birincisi değil.
mveroone

Yanıtlar:


3

Tahsis edilen alanda hem tam kullanıcı adını hem de grup adını gösteremiyorsa ls, benzer kullanıcı veya grup adları nedeniyle güvenlik sorunlarını azaltmak veya ortadan kaldırmak için birini veya ikisini de kesmek yerine kullanıcı veya grup kimliğiyle değiştirir farklı uzunluklarda. Sütunu genişletmez. Bunu değiştiremezsin.


Bu davranış belgeleniyor mu? lsDebian üzerinde gerçekten de sahibi / grup sütunları genişletilmiş: -rw-r--r-- 1 messagebus winbindd_priv 0 12. Nov 15:13 test, messagebus ve winbindd_priv en uzun kullanıcı / grup isimleri bulabildiğim vardı;)
mpy

3
@mpy: Bunu açıklayan özel bir belge bulamadım. Çeşitli dağıtımların farklı davranışlar sergilediğini öğrendiğimde şaşırmam.
Ignacio Vazquez-Abrams,

2

Dosyanın meta verilerinde ad olarak kaydedilmiş sahibi ve grubu değil, UID ve GID'si var.

İşletim sistemi bu kimlikleri adlara çözemezse, kimliği olduğu gibi gösterir.

Çözüm süreci /etc/nsswitch.confnereye bakılacağını bilmek için kullanır . (dosya, ldap, veritabanı vb.)

Sanırım bunun getent group gitlab_cihiçbir şey döndürmeyeceği, yani grubun var olmadığı anlamına geliyor. Bu, bu grubun GID 999'a sahip olmadığı anlamına gelmiyor ve bu da dosyanızın neden sahte olduğunu gösterdiğini açıklıyor.

chgrpGID’ini değiştirmek için kullanın .


1
Bir ID bir isim için çözülemediğinde, bunun yerine ID'nin kullanıldığını onaylayabilirim.
Avery Payne

0

Cevaplamak için geç kaldım, ancak bazı dağıtımlarda MySQL için kullanılan 999 kullanıcısını gördüm. Senin dağıtıma 999 kullanıcı kullanmıyorsa, o mümkün dizin paylaşılır veya başka bir makineden, kopyalanan olduğunu.

Örnek olarak, aşağıdaki dizinde 999 kullanıcım var ve makinemde kullanıcı yok:

$ ls -l mysql_data/
total 176188
-rw-rw---- 1 999 999       56 Jul 10 12:41 auto.cnf
-rw-rw---- 1 999 999 79691776 Jul 11 09:45 ibdata1
-rw-rw---- 1 999 999 50331648 Jul 11 09:45 ib_logfile0
-rw-rw---- 1 999 999 50331648 Jul 10 12:41 ib_logfile1
drwx------ 2 999 999    45056 Jul 10 17:03 magento
drwx------ 2 999 999     4096 Jul 10 12:41 mysql
drwx------ 2 999 999     4096 Jul 10 12:41 performance_schema

$ grep 999 /etc/passwd
$

Ancak bu dizini bağlayan Docker konteynerini incelersek şunları buluruz:

$ docker-compose exec mysql grep 999 /etc/passwd
mysql:x:999:999::/home/mysql:

Bu konteynerin resmi Docker MySQL resmi resmidir:

$ grep -A1 -P "^\s*mysql:" docker-compose.yml
  mysql:
    image: mysql:5.6.40
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.