หากคุณสร้างบัญชีผู้ใช้ด้วยuseradd
คุณจะต้องตั้งค่าทุกอย่างด้วยตนเอง นี่คือเหตุผลที่เมื่อสร้างบัญชีผู้ใช้จากบรรทัดคำสั่งแนะนำให้ใช้adduser
ใน Ubuntu (และ Debian และระบบที่ใช้ Debian อื่น ๆ ) แทน คุณอาจต้องการลบผู้ใช้ที่มีuserdel
หรือdeluser
สร้างใหม่adduser
อีกครั้ง มิฉะนั้น...
แก้ไขตำแหน่งของไดเรกทอรีภายในบ้าน
หากคุณต้องการเก็บบัญชีผู้ใช้และแก้ไขปัญหาคุณต้องดูที่:
- ชื่อของโฮมไดเร็กทอรีที่บัญชีผู้ใช้กำหนดค่าไว้จริง ๆ
- ชื่อของไดเรกทอรีที่คุณสร้างขึ้นจริง
สิ่งเหล่านี้จะต้องเหมือนกันทุกประการ ข้อความแสดงข้อผิดพลาดที่คุณได้รับsu -l penner
แจ้งว่าไม่เหมือนกัน
ในการตรวจสอบโฮมไดเรกทอรีที่บัญชีผู้ใช้นั้นได้รับการกำหนดค่าให้รันคำสั่งนี้ (ดูman 5 passwd
และman grep
สำหรับข้อมูลเพิ่มเติม):
grep penner /etc/passwd
คุณควรเห็นบรรทัดดังนี้:
penner:x:1000:1000:Eliah Kagan,,,:/home/penner:/bin/bash
นั่นคือ:
ฟิลด์ -separated ที่หก(หลังจากที่ห้า:
) มีโฮมไดเร็กตอรี่ ถ้าไม่ใช่/home/penner
มันควรจะเป็น หากไดเรกทอรีที่คุณสร้างขึ้นสำหรับผู้ใช้ไม่/home/penner
ควรเป็นเช่นกัน หากทั้งสองไดเรกทอรีเหมือนกัน แต่ไม่มีใครเป็น/home/penner
แล้วอาจว่าการทำงานในทางทฤษฎี แต่คุณควรจะทำให้พวกเขาทั้งสอง/home/penner
เพราะซอฟต์แวร์จำนวนมากสันนิษฐานว่าทั้งหมดไม่ใช่ของผู้ใช้ไดเรกทอรีบ้านroot
/home/username
คุณสามารถเปลี่ยนpenner
โฮมไดเร็กตอรี่เป็น/home/penner
โดยใช้คำสั่งนี้:
sudo usermod -d /home/penner penner
ตรวจสอบให้แน่ใจว่ามันเป็นไดเรกทอรีและผู้ใช้มีสิทธิ์เข้าถึง
ถ้า (หรือหนึ่งครั้ง) ชื่อมีทั้ง/home/penner
คุณควรตรวจสอบให้แน่ใจว่าผู้ใช้มีการเข้าถึงไดเรกทอรีบ้านของตนเอง วิ่ง:
ls -ld /home/penner
คุณควรเห็นสิ่งที่มีลักษณะเช่นนี้ (แม้ว่าวันที่และเวลาจะแตกต่างกัน):
drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner
หากdrwxr-xr-x
คุณมีสิ่งที่เริ่มต้นด้วย-
แทนที่จะเป็นd
คุณสร้างไฟล์แทนที่จะเป็นไดเรกทอรี ลบไฟล์และสร้างไดเรกทอรีที่นั่นแทน
หากแทนที่จะเป็นคนแรกที่penner
คุณมีอย่างอื่นผู้ใช้จะไม่ได้เป็นเจ้าของโฮมไดเร็กตอรี่ของพวกเขาดังนั้นให้พวกเขาเป็นเจ้าของ:
sudo chown penner /home/penner
หากแทนที่จะdrwxr-xr-x
มีขีดกลางในสามอักขระถัดไปหลังจากd
นั้นผู้ใช้จะไม่สามารถเข้าถึงแบบเต็มได้ แก้ไขดังต่อไปนี้:
sudo chmod u+rwx /home/penner
( penner
สามารถเรียกใช้คำสั่งนี้หากพวกเขาเป็นเจ้าของโฮมไดเร็กตอรี่ของพวกเขา, ดังนั้นหากคุณต้องการ, คุณสามารถรันสิ่งนี้เป็นsudo -u penner u+rwx /home/penner
:)
การทำให้แน่ใจว่าผู้ใช้รายอื่นไม่มีการเข้าถึงแบบครอบคลุม
หากแทนที่จะdrwxr-xr-x
มีตัวอักษรw
s แทน-
ในตัวอักษรหกตัวสุดท้ายผู้ใช้รายอื่นpenner
อาจมีสิทธิ์เข้าถึงการเขียนไปยังpenner
โฮมไดเร็กตอรี่ของ สิ่งนี้เป็นสิ่งที่อันตราย (เว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่และต้องการให้เป็นเช่นนี้และตั้งสิ่งต่าง ๆ ไว้เพื่อที่ว่ามันจะไม่เป็นปัญหา) วิธีแก้ไข:
sudo chmod -R go-w /home/penner
ค่าเริ่มต้นอื่น ๆ
มีการเปลี่ยนแปลงอื่น ๆ ที่คุณอาจต้องการทำ ตามค่าเริ่มต้นใน Ubuntu (นั่นคือถ้าคุณสร้างบัญชีผู้ใช้ด้วยadduser
หรือด้วยเครื่องมือกราฟิกซึ่งคุณไม่ได้ทำ):
โฮมไดเรกทอรีมีสิทธิ์อ่านและเขียนสำหรับทุกคนไม่ใช่แค่ผู้ใช้ที่เป็นเจ้าของ ผู้ใช้สามารถเปลี่ยนแปลงสิ่งนี้ได้ทั้งไดเรกทอรีบ้านหรือไฟล์และไดเรกทอรีย่อยที่อยู่ภายใน แต่ถ้าคุณต้องการค่าเริ่มต้นนี้และคุณไม่มีตัวที่สองและสามr
และx
ในdrwxr-xr-x
ให้เรียกใช้:
sudo chmod 755 /home/penner
( penner
สามารถเรียกใช้คำสั่งนี้หากพวกเขาเป็นเจ้าของโฮมไดเร็กตอรี่ของพวกเขา, ดังนั้นหากคุณต้องการ, คุณสามารถรันสิ่งนี้เป็นsudo -u penner chmod 755 /home/penner
:)
ผู้ใช้แต่ละคนมีกลุ่มของตนเองมีชื่อเหมือนกับผู้ใช้และนี่คือกลุ่มหลักของผู้ใช้ โฮมไดเรกทอรีของพวกเขาเป็นของกลุ่มนี้ นั่นคือความหมายของการที่สองในpenner
drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner
มันก็โอเคถ้าคุณรู้ว่าคุณกำลังทำอะไรอยู่ แต่ถ้าคุณไม่ได้ตั้งใจที่จะทำสิ่งที่แตกต่างคุณควรตรวจสอบให้แน่ใจว่าpenner
ตั้งค่าด้วยวิธีนี้เนื่องจากมีข้อมูลเฉพาะตัวกลุ่มหลักที่เป็นไปได้สำหรับผู้ใช้หรือเจ้าของกลุ่มในไดเรกทอรีหลักของผู้ใช้อาจทำให้เกิดปัญหาด้านความปลอดภัย
groups penner
วิ่ง (ดูman groups
ข้อมูลเพิ่มเติม) คุณควรเห็นสิ่งนี้:
penner : penner adm dialout cdrom plugdev lpadmin sambashare
ไม่ต้องกังวลหากไม่เป็นเช่นนั้น ฉันจะไปที่เร็ว ๆ นี้ :
แต่มองไปที่คำแรกหลังจากที่ นั่นคือชื่อของกลุ่มหลักของผู้ใช้ สมมติว่าคุณต้องการpenner
ให้แน่ใจว่าเป็น หากไม่ใช่ให้เปลี่ยน:
sudo usermod -g penner penner
หากคุณได้รับข้อผิดพลาดว่ากลุ่มpenner
ไม่มีอยู่คุณจะต้องสร้างมันด้วยคำสั่งนี้ (จากนั้นเรียกใช้คำสั่งข้างต้นอีกครั้ง):
sudo addgroup penner
เมื่อคุณวิ่งgroups penner
คุณอาจมีรายการกลุ่มที่สั้นกว่าของฉันpenner : penner adm dialout cdrom plugdev lpadmin sambashare
มาก สำหรับผู้ใช้เดสก์ทอปadm
, dialout
, cdrom
, plugdev
, lpadmin
และsambashare
ให้ความสามารถในการที่ผู้ใช้คอมพิวเตอร์ทั่วไปควรจะมี ดังนั้นหากคุณไม่มีเหตุผลที่จะทำอย่างอื่นpenner
ควรอยู่ในกลุ่มเหล่านี้ อย่างไรก็ตามกลุ่มเหล่านี้ไม่ใช่กลุ่มหลักดังนั้นจึงตั้งค่าต่างกัน หากpenner
ว่าไม่ได้อยู่ในกลุ่มเหล่านี้และคุณต้องการpenner
ที่จะอยู่ในกลุ่มทั้งหมดให้รันคำสั่งนี้:
sudo usermod -a -G adm,dialout,plugdev,lpadmin,sambashare penner
ในกรณีที่คุณสนใจนี่คือความหมายของกลุ่มเหล่านั้น:
(ที่มา: สิทธิ์ในเอกสารของ Ubuntu)
ทำให้ผู้ใช้เป็นผู้ดูแลระบบ
หากคุณไม่ต้องการpenner
เป็นผู้ดูแลระบบคุณอาจไม่จำเป็นต้องทำอะไรอีก คุณสามารถตรวจสอบว่าpenner
เป็นผู้ดูแลระบบด้วยgroups penner
หรือไม่ หากค่าadmin
มิได้sudo
เป็น บริษัท จดทะเบียนแล้วpenner
ไม่ได้เป็นผู้ดูแลระบบ
หากคุณต้องการpenner
เป็นผู้ดูแลระบบให้เพิ่มpenner
กลุ่มใดกลุ่มหนึ่งเข้าด้วยกัน (คุณอาจเพิ่มpenner
ทั้งสองอย่างถ้าทั้งคู่มีอยู่) คุณสามารถทำเช่นนั้นได้โดยการเรียกใช้คำสั่งสองคำสั่งแยกกัน - หากคุณประสบความสำเร็จคุณได้ทำpenner
ผู้ดูแลระบบ:
sudo usermod -a -G admin penner
sudo usermod -a -G sudo penner
- เหตุผลที่มีสองกลุ่มคือก่อน Ubuntu 12.04 LTS ผู้ดูแลระบบอยู่ใน
admin
กลุ่ม เริ่มต้นด้วย Ubuntu 12.04 LTS ผู้ดูแลระบบอยู่ในsudo
กลุ่ม แต่ถ้าระบบ 12.04 LTS ของคุณได้รับการอัพเกรดจากรุ่นก่อนหน้านี้ (และสิ่งนี้ควรใช้กับ Ubuntu รุ่นใหม่กว่าเช่น 12.10 เมื่อออกมาซึ่งอัพเกรดจาก Ubuntu 11.10 หรือเก่ากว่า) ดังนั้นความเข้ากันได้แบบย้อนหลังผู้ดูแลระบบเป็นสมาชิกของทั้งคู่และsudo
admin
โดยทั่วไปหากกลุ่มใดกลุ่มหนึ่งเหล่านี้ไม่ได้มอบความสามารถด้านการดูแลระบบก็ไม่มีอยู่ดังนั้นการรันทั้งสองคำสั่งข้างต้น (แยกกันไม่ใช่แบบsudo usermod -a -G admin,sudo penner
) เป็นวิธีที่ปลอดภัยและมีประสิทธิภาพในการทำให้penner
ผู้ดูแลระบบ