Android

Linux'ta chown komutu (dosya sahipliği)

Linux vs Windows vs MacOS для работы. Какой ЛИНУКС выбрать в 2020 для рабочего компьютера?

Linux vs Windows vs MacOS для работы. Какой ЛИНУКС выбрать в 2020 для рабочего компьютера?

İçindekiler:

Anonim

chown komutu, belirli bir dosya, dizin veya sembolik bağlantının kullanıcı ve / veya grup sahipliğini değiştirmenize olanak tanır.

Linux'ta, tüm dosyalar bir sahip ve bir grupla ilişkilendirilir ve dosya sahibi, grup üyeleri ve diğerleri için izin erişim haklarıyla atanır.

Bu derste, chown komutunun pratik örnekler yoluyla nasıl kullanılacağını göstereceğiz.

chown nasıl kullanılır

chown komutunun nasıl kullanılacağına başlamadan önce, temel sözdizimini inceleyerek başlayalım.

chown komut ifadeleri aşağıdaki formu alır:

chown USER FILE(s)

USER , yeni sahibin kullanıcı adı veya kullanıcı kimliğidir (UID). GROUP , yeni grubun veya grup kimliğinin (GID) adıdır. FILE(s) bir veya daha fazla dosya, dizin veya bağlantının adıdır. Sayısal kimliklerin önüne + sembolü gelmelidir.

  • USER - Yalnızca kullanıcı belirtilirse, belirtilen kullanıcı verilen dosyaların sahibi olur, grup sahipliği değiştirilmez. USER: - Kullanıcı adından sonra iki nokta üst üste : ve grup adı verilmezse, kullanıcı dosyaların sahibi olur ve dosya grubu sahipliği kullanıcının oturum açma grubuna değiştirilir. USER:GROUP - Hem kullanıcı hem de grup belirtilirse (bunlar arasında boşluk olmadan), dosyaların kullanıcı sahipliği verilen kullanıcıya ve grup sahipliği verilen gruba değiştirilir. :GROUP - Kullanıcı atlanır ve gruba iki nokta işareti eklenirse : yalnızca dosyaların grup sahipliği belirtilen gruba değiştirilir. : Yalnızca iki nokta üst üste : verilirse, kullanıcı ve grup belirtilmeden değişiklik yapılmaz.

Varsayılan olarak, chown herhangi bir çıktı üretmez ve sıfır döndürür.

Bir dosyanın kime ait olduğunu veya dosyanın hangi gruba ait olduğunu bulmak için ls -l komutunu kullanın:

ls -l filename.txt

-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | +-----------> Group +-------------------> Owner

Yalnızca kök veya sudo ayrıcalıklarına sahip kullanıcı bir dosyanın grup sahipliğini değiştirebilir.

Dosyanın Sahibini Değiştirme

Bir dosyanın sahibini değiştirmek için chown komutunu ve ardından yeni sahibin kullanıcı adını ve hedef dosyayı bağımsız değişken olarak kullanın:

chown USER FILE

Örneğin, aşağıdaki komut, file1 adlı bir dosyanın sahipliğini linuxize adlı yeni bir linuxize :

chown linuxize file1

Birden çok dosya veya dizinin sahipliğini değiştirmek için bunları boşlukla ayrılmış bir liste olarak belirtin. Aşağıdaki komut, file1 ve dizin dir1 adlı bir dosyanın sahipliğini linuxize adlı yeni bir linuxize :

chown linuxize file1 dir1

Kullanıcı adı yerine sayısal kullanıcı kimliği (UID) kullanılabilir. Aşağıdaki örnek, file2 adlı bir dosyanın sahipliğini 1000 UID değerine sahip yeni bir file2 değiştirir:

chown 1000 file2

Kullanıcı adı olarak sayısal bir sahip varsa, sahiplik kullanıcı adına aktarılır. Bu önekten kaçınmak için kimliği + :

chown 1000 file2

Bir Dosyanın Sahibini ve Grubunu Değiştirme

Hem dosyanın sahibini hem de grubunu değiştirmek için chown komutunu ve ardından araya giren boşluklar ve hedef dosya olmadan iki nokta üst üste (:) ile ayrılmış yeni sahip ve grubu kullanın.

chown USER:GROUP FILE

Aşağıdaki komut, file1 adlı bir dosyanın sahipliğini linuxize ve grup users adlı yeni bir linuxize :

chown linuxize:users file1

Grup adını iki nokta üst üste işaretinden (:) çıkarırsanız, dosya grubu belirtilen kullanıcının oturum açma grubuna değiştirilir:

chown linuxize: file1

Dosya Grubunu Değiştirme

Yalnızca bir dosyanın grubunu değiştirmek için chown komutunu ve ardından iki nokta üst üste ( chown ve yeni grup adını (aralarında boşluk olmadan) ve hedef dosyayı bağımsız değişken olarak kullanın:

chown:GROUP FILE

Aşağıdaki komut, file1 adlı bir dosyanın sahip grubunu www-data :

chown:www-data file1

Dosyaların grup sahipliğini değiştirmek için kullanabileceğiniz başka bir komut chgrp .

Sembolik Bağlantılar Sahipliğini Değiştirme

Özyinelemeli seçenek kullanılmadığında, chown komutu sembolik bağlantıların kendisini değil, sembolik bağların işaret ettiği dosyaların grup sahipliğini değiştirir.

Örneğin, /var/www/file1 symlink1 işaret eden sembolik bağ symlink1 grubunun sahibini ve grubunu değiştirmeye çalışırsanız chown , sembolik bağın işaret ettiği dosyanın veya dizinin sahipliğini değiştirir:

chown www-data: symlink1

Muhtemelen, hedef sahipliği değiştirmek yerine “dereference olamaz 'symlink1': İzin reddedildi” hatası alırsınız.

Hata, Linux dağıtımlarının çoğunda varsayılan olarak sembolik bağların korunduğu ve hedef dosyalar üzerinde çalışamayacağınız için oluşur. Bu seçenek /proc/sys/fs/protected_symlinks . 1 etkin ve 0 devre dışı demektir. Symlink korumasını devre dışı bırakmamanızı öneririz.

Symlink'in grup sahipliğini değiştirmek için -h seçeneğini kullanın:

chown -h www-data symlink1

Dosya Sahipliğini Yinelemeli Olarak Değiştirme

Verilen dizinin altındaki tüm dosya ve dizinlerde özyinelemeli olarak çalışmak için -R ( --recursive ) seçeneğini kullanın:

chown -R USER:GROUP DIRECTORY

Aşağıdaki örnek, /var/www dizini altındaki tüm dosyaların ve alt dizinlerin sahipliğini www-data adlı yeni bir sahip ve gruba değiştirecektir:

chown -R www-data: /var/www

Dizin sembolik bağlantılar içeriyorsa -h seçeneğini -h :

chown -hR www-data: /var/www

Dizin sahipliğini özyineli olarak değiştirirken kullanılabilecek diğer seçenekler -H ve -L .

chown komutuna iletilen argüman bir dizine işaret eden sembolik bir chown , -H seçeneği komutun onu geçmesine neden olur. -L , chown karşılaşılan bir dizine her sembolik bağlantıdan geçmesini söyler. Genellikle, bu seçenekleri kullanmamalısınız çünkü sisteminizi bozabilir veya güvenlik riski oluşturabilirsiniz.

Referans Dosyası Kullanma

--reference=ref_file seçeneği, belirtilen dosyaların kullanıcı ve grup sahipliğini belirtilen başvuru dosyasının ( ref_file ) ile aynı olacak şekilde değiştirmenize olanak tanır. Referans dosyası sembolik bir bağlantıysa, gösterilen dosya hedef dosyanın kullanıcı ve grubunu kullanır.

chown --reference=REF_FILE FILE

Örneğin, aşağıdaki komut, dosya1'in kullanıcı ve grup sahipliğini file1 atar

chown --reference=file1 file2

Sonuç

chown , dosyanın kullanıcı ve / veya grup sahipliğini değiştirmek için kullanılan bir Linux / UNIX komut satırı yardımcı programıdır.

chown komutu hakkında daha fazla bilgi edinmek için chown man sayfasını ziyaret edin veya terminalinizde chown man yazın.

chown terminali